MVCS框架的注意点
1.Service最好用一个接口对应一个service(便于增加扩展方法)
2.除Services和Model外都需继承自各自对应的父类
3.View不要轻易重写Start和Awake方法(含与启动有关的代码)
4.View文件包含一个View和对应的mediator脚本,在Context中将View和对应的Mediator进行Bind
5.只有Command的Event需要在Context中进行Bind,其他文件的Event不需要
6.[Inject]自动注入(赋值)必须做成属性
7.在Mediator中重写OnRegister(当所有属性被注入后并且都Bind完后调用)和OnRemove方法(当对应的View被销毁时调用)
8.View只和Mediator交互,Mediator向Controller发送一个Command,在回调,在Mediator中创建一个View对象进行交互
9.所有文件都有一个Event枚举
10.模块间的通信用dispatcher(只用一次用局部就行,多次使用创建成全局的)
[inject]
public IEventDispatcher dispatcher{get;set;}
11.dispatcher通过dispatch(...Event. ...)发
第二个参数是数据(可无),数据可以是任何类型
AddListener(...Event. ...,OnComplete)收
第二个参数是用来处理数据的函数
用完通过RemoveListener销毁
public void OnComplete(IEvent evt){ }//evt.data表示数据
12.Command --> Service:在Command中创建一个IServices的对象进行交互,在Context中将IService和Service Bind
13.在Model和Service绑定代码后加上 .ToSingleton()表示这个对象只会在整个工程中生成一个
14.在Service中创建局部dispatcher向Command传信息
15.在Command <--> Service过程中Service可能花大量时间,在此过程中Command可能会自动销毁,在Excute中加入Retain()保证一直不会销毁,在收数据函数末尾加上Release()销毁Command
16.Model是自己和自己做Bind
Service是接口和实现做Bind
MVCS框架的注意点的更多相关文章
- StrangeIoc框架学习
StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对Unity3D开发的一款框架,非常好用. 一.MVCS分别代表什么 MVCS框架是一种模块的分离,一种写代码的规则,目 ...
- Unity3D手游开发实践
<腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/ ...
- Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (2)
Swiftsuspenders2简介 Swiftsuspenders2是一个基于元数据(metadata)的IOC(控制反转,inversion of control)的AS3的解决方案.(对于元数据 ...
- (转)Unity3D手游开发实践
作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). (转)& ...
- Uber的API生命周期管理平台边缘网关(Edge Gateway)的设计实践
设计边缘网关(Edge Gateway),一个高可用和高可扩展的自助服务网关,用于配置.管理和监控 Uber 每个业务领域的 API. Uber 的 API 网关的演进 2014 年 10 月,优步开 ...
- Uber三代API 生命周期管理平台实现 Uber
Uber三代API 生命周期管理平台实现 - InfoQ https://www.infoq.cn/article/H8Ml6L7vJGQz0efpWvyJ Uber 三代 API 生命周期管理平台实 ...
- 关于StrangeIOC框架
在Unity上进行开发,请先看对其开发模式应用的讨论: http://www.reddit.com/r/Unity3D/comments/1nb06h/unity_design_patterns_an ...
- StrangeIoc框架学习----在项目中实战
最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一 ...
- 【iOS】小项目框架设计(ReactiveCocoa+MVVM+AFNetworking+FMDB)
上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下 ...
随机推荐
- 5. Longest Palindromic Substring (DP)
Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...
- Aladdin and the Flying Carpet
Aladdin and the Flying Carpet https://cn.vjudge.net/contest/288520#problem/C It's said that Aladdin ...
- Codeforces Beta Round #49 (Div. 2)
Codeforces Beta Round #49 (Div. 2) http://codeforces.com/contest/53 A #include<bits/stdc++.h> ...
- ECMAScript6的原型
class Car { constructor(name){ this.name = name; } getName(){ } } class Ferrari extends Car{ constru ...
- Nginx特点及其配置
1.基础知识 代理服务器: 一般是指局域网内部的机器通过代理服务器发送请求到互联网上的服务器,代理服务器一般作用在客户端.应用比如:GoAgent,FQ神器. 一个完整的代理请求过程为:客户端首先与代 ...
- SeekBar
<SeekBar android:id=”@+id/seek”android:layout_width=”match_parent”android:layout_height=”wrap_con ...
- linq join用法
单条件: var query = from person in people join pet in pets on person equals pet.Owner select new { Owne ...
- 理解Linux中的shutdown、poweroff、halt和reboot命令
原文 http://os.51cto.com/art/201706/541525.htm 在本篇中,我们会向你解释 shutdown.poweroff.halt 以及 reboot 命令.我们会 ...
- javascript 重构alert()
javascript问题,关于重构window.alert()后,然后调用window原本的window.alert()的方法 大神们,问个问题,如果在script标签的第一行散写,重构了window ...
- IntelliJ idea 的破解
·1.破解的jar包下载链接: https://pan.baidu.com/s/1JV6GwguGQNs5pNQtst29Hw 提取码: u2jd 2.安装和破解地址:https://www.cnb ...