单核版本下载地址:
源:https://en.wikipedia.org/wiki/Singleton_pattern
自传蓝奏云:https://wwz.lanzoum.com/iv3KY07bzvje
PureMVC框架单核版本使用逻辑
首先编写PureNotification类:
这是通知名称类,使用常量string保存通知名称

Model层:
1. 编写数据结构类,纯class->PlayerDataObj
2. 编写继承Proxy的代理类,其中Proxy需要编写一个必选参数“名称",一个可选参数”数据变量“的构造方法

例:public PlayerProxy(string name,object data=null);
Proxy代理使用Data属性存储数据,使用Facade.RegisterProxy注册代理,可使用Facade.Retri…通过名字获取数据。

Proxy固定写法:
public class PlayerProxy : Proxy
{public new const string NAME = "PlayerProxy";public PlayerProxy() : base(NAME){XXX data=new XXX();....Data=data;}
...其他数据业务逻辑例如 PlayerLevelUp()数据升级逻辑
}

View层:
1. 为每个面板都编写View类,继承MonoBehaviour,用于声明UI组件以及编写更新UI信息方法UpdateInfo(XXX 数据信息类)
2. 为每个View类编写Mediator类,需要继承Mediator

Mediator固定写法:

public class MainView_Mediator : Mediator
{public static new string NAME = "Mediator名称,例如MainView_Mediator";public MainView_Mediator() : base(NAME)//构造函数,不需要写业务逻辑,调用父类的单参数构造函数即可{}public override string[] ListNotificationInterests()//重写该方法,用于告诉脚本该类需要监听哪些通知,通知名存在PureNotification中{return new string[] {PureNotification.UPDATE_INFO};}public override void HandleNotification(INotification notification)//重写触发方法{switch (notification.Name)//通过通知的名称判断需要做什么逻辑,前提是在ListNotificationInterests中添加好了通知名称{case PureNotification.UPDATE_INFO:if(ViewComponent!=null)((XXXView)ViewComponent).UpdateView((XXX)notification.Body);break;}}public void SetView(XXXView view类){ViewComponent=view类;//为Mediator类设置View脚本,这个是必要步骤}
}

Controller层:
这里编写的是业务逻辑,也就是发送通知时触发的方法,所有类都继承SimpleCommand类,并重写Execute方法

public class StartUp_Command : SimpleCommand
{public override void Execute(INotification notification){Debug.Log(notification.Name + "Excute");}
}

Facade管理类脚本:
最重要的就是GameFacade脚本(名字根据自己的项目设定,最好加一个Facade后缀,以表示这是Facade脚本),该脚本继承Facade类,并且需要编写为单例脚本,并重写InitializeFacade方法,里面编写使用RegisterCommand注册Command命令的逻辑

示例脚本:
public class GameFacade : Facade
{public static GameFacade Instance{get{if(instance==null){instance = new GameFacade();}return instance as GameFacade;}}protected override void InitializeFacade(){base.InitializeFacade();RegisterCommand(PureNotification.START_UP,()=> {return new StartUp_Command();});RegisterCommand(PureNotification.SHOW_PANEL, () => {return new ShowPanel_Command();});RegisterCommand(PureNotification.HIDE_PANEL, () =>{return new HidePanel_Command();});RegisterCommand(PureNotification.LEV_UP, () =>{return new LevUp_Command();});}

注册完毕后使用SendNotification(PureNotification.通知名);进行发起通知

PureMVC开源框架在Unity中的使用逻辑相关推荐

  1. TKDragView_iOS开发常用第三方开源框架 持续更新中...

    网络请求 AFNetworking Alamofire AFNetworking swift版本 YTKNetwork AFNetworking的封装 YQNetworking 基于AFNetwork ...

  2. iOS开发常用第三方开源框架 持续更新中...[转]

    键盘管理 TPKeyboardAvoiding IQKeyboardManager(1.2.8) 弹窗HUD MBProgressHUD(0.9.2) SVProgressHUD UIView+Toa ...

  3. 掌握了开源框架还不够,你更需要掌握源代码

    摘要:本篇文章将以解决 Element Plus 问题的经历开始,循序渐进讨论开源项目或开源框架的问题,进一步讨论驾驭开源项目源代码的方法和技巧,分享自己阅读.理解和更改源代码的思路. 本文分享自华为 ...

  4. iOS开发常用第三方开源框架

    iOS开发-常用第三方开源框架倾情整理!简书:https://www.jianshu.com/p/29cb22b13d79 iOS第三方库大全:https://blog.csdn.net/kanggu ...

  5. tomcat中request对象是被创建的_常用开源框架中设计模式使用分析(全)

    一.前言 说起来设计模式,大家应该都耳熟能详,设计模式代表了软件设计的最佳实践,是经过不断总结提炼出来的代码设计经验的分类总结,这些模式或者可以简化代码,或者可以是代码逻辑开起来清晰,或者对功能扩展很 ...

  6. 史上最全Android开发中100%会用到的开源框架整理(1/5)

    其实这个开源框架整理很久了,只是一直放在有道云笔记里面,笔者还有很多写得文章都放在有道云笔记里面,有时间都好好整理一下放出来,本篇文章也会不定期更新,由于整理的开源框架分类都有200多个,所有这次只将 ...

  7. 使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)...

    AsyncTask使用方法详情:http://www.cnblogs.com/zzw1994/p/4959949.html 下拉开源框架PullToRefresh使用方法和下载详情:http://ww ...

  8. 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个

    从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等. Django: Python Web应用开发框架 Djang ...

  9. [js高手之路]从零开始打造一个javascript开源框架gdom与插件开发免费视频教程连载中...

    百度网盘下载地址:https://pan.baidu.com/s/1kULNXOF 优酷土豆观看地址:http://v.youku.com/v_show/id_XMzAwNTY2MTE0MA==.ht ...

最新文章

  1. Spring框架—IoC容器
  2. vue 导入excel解析_VUE中导入excel文件
  3. SpringMVC中controller的跳转
  4. 2091: [Poi2010]The Minima Game
  5. vivo 5G手机日产量10万台 3月销量同比增长超10%
  6. 用jquery在必填表单字段前加红星总结
  7. 自己构造公共程序(3)--DataGrid小方法
  8. 算法(0)—— 打造一个C开发库
  9. 全国各省统计年鉴汇总2021
  10. python爬图mzitu_小白学 Python 爬虫(16):urllib 实战之爬取妹子图
  11. 使用keras训练一个区分不同人声音的模型
  12. 产品读书《重新定义团队:谷歌如何工作》
  13. 测试固态硬盘写入数据软件,持续写入100TB 三星840EVO耐久度测试
  14. MySQL常见运算符详解
  15. Java核心技术(Java白皮书)卷Ⅰ 第一章 Java程序设计概述
  16. DCloud的uniapp如何实现微信刷脸支付
  17. 是的你没看错,js生成word文档
  18. 中国非处方彩色美瞳隐形眼镜行业销售动态与营销前景预测报告2022-2027
  19. 数据结构 —— 队列、栈、链表的区别
  20. 微生物16S测序数据的正确打开方式

热门文章

  1. 开发部项目编码规范说明
  2. 看Youtube怎么利用深度学习做推荐
  3. php的mvc三层架构,MVC三层架构
  4. 比较好用的 Linux系统推荐
  5. opencv 中CV_32F和CV_64读取数据结果不一致
  6. 青龙-快手极速版(3/2更新)
  7. vb For循环例子
  8. 忽悠的原理和技巧观后感
  9. 破解入门(二)-----认识OllyDBG
  10. apqp过程流程图及编写规则_APQP过程流程图.xls