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框架的注意点的更多相关文章

  1. StrangeIoc框架学习

    StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对Unity3D开发的一款框架,非常好用. 一.MVCS分别代表什么 MVCS框架是一种模块的分离,一种写代码的规则,目 ...

  2. Unity3D手游开发实践

    <腾讯桌球:客户端总结> 本次分享总结,起源于腾讯桌球项目,但是不仅仅限于项目本身.虽然基于Unity3D,很多东西同样适用于Cocos.本文从以下10大点进行阐述: 架构设计 原生插件/ ...

  3. Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (2)

    Swiftsuspenders2简介 Swiftsuspenders2是一个基于元数据(metadata)的IOC(控制反转,inversion of control)的AS3的解决方案.(对于元数据 ...

  4. (转)Unity3D手游开发实践

    作者:吴秦出处:http://www.cnblogs.com/skynet/本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名吴秦(包含链接). (转)& ...

  5. Uber的API生命周期管理平台边缘网关(Edge Gateway)的设计实践

    设计边缘网关(Edge Gateway),一个高可用和高可扩展的自助服务网关,用于配置.管理和监控 Uber 每个业务领域的 API. Uber 的 API 网关的演进 2014 年 10 月,优步开 ...

  6. Uber三代API 生命周期管理平台实现 Uber

    Uber三代API 生命周期管理平台实现 - InfoQ https://www.infoq.cn/article/H8Ml6L7vJGQz0efpWvyJ Uber 三代 API 生命周期管理平台实 ...

  7. 关于StrangeIOC框架

    在Unity上进行开发,请先看对其开发模式应用的讨论: http://www.reddit.com/r/Unity3D/comments/1nb06h/unity_design_patterns_an ...

  8. StrangeIoc框架学习----在项目中实战

    最近,因为公司的项目一直在研究StrangeIoc框架,小有所得,略作记录. StrangeIoc是一款基于MVCS的一种框架,是对MVC思想的扩展,是专门针对unity开发的一款框架,非常好用. 一 ...

  9. 【iOS】小项目框架设计(ReactiveCocoa+MVVM+AFNetworking+FMDB)

    上一个项目使用到了ReactiveCocoa+MVVM+AFNetworking+FMDB框架设计,从最初的尝试,到后来不断思考和学习,现在对这样一个整体设计还是有了一定了理解与心得.在此与大家分享下 ...

随机推荐

  1. xshell常用的快捷键

    删除ctrl + d      删除光标所在位置上的字符相当于VIM里x或者dlctrl + h      删除光标所在位置前的字符相当于VIM里hx或者dhctrl + k      删除光标后面所 ...

  2. JAVA 基本数据结构--数组、链表、ArrayList、Linkedlist、hashmap、hashtab等

    概要 线性表是一种线性结构,它是具有相同类型的n(n≥0)个数据元素组成的有限序列.本章先介绍线性表的几个基本组成部分:数组.单向链表.双向链表:随后给出双向链表的C.C++和Java三种语言的实现. ...

  3. chase

    chase 英[tʃeɪs] 美[tʃes] vt. 追求; 追捕; 追寻; 镂刻; n. 追捕; 打猎; 猎物(指鸟兽等); 槽; vi. 追逐,追赶; 追寻; 追求(常与after连用); [口语 ...

  4. c#: 以模态窗口显示于其它进程窗体之前

    产品之工具箱,需要工具以模态窗体,显示于主界面之上.记下代码点,以做备忘. 1.IWin32Window internal class Win32Window : IWin32Window { pub ...

  5. IIS下载,WebClient().DownloadFile下载

    new System.Net.WebClient().DownloadFile(serverPath, localPath); 有时候使用的时候,文件下载不下来.需要设置一下服务器上IIS的权限

  6. IQKeyboardManager

    enable控制整个功能是否启用. shouldResignOnTouchOutside控制点击背景是否收起键盘. shouldToolbarUsesTextFieldTintColor 控制键盘上的 ...

  7. LRU缓存原理

    LRU(Least Recently Used)  LRU是近期最少使用的算法,它的核心思想是当缓存满时,会优先淘汰那些近期最少使用的缓存对象. 采用LRU算法的缓存有两种:LrhCache和DisL ...

  8. Bootstrap(9) 巨幕页头缩略图和警告框组件

    一.巨幕组件巨幕组件主要是展示网站的关键性区域.//在固定的范围内,有圆角 <div class="container"> <div class="ju ...

  9. Bootstrap(4) 表单和图片

    1.表单 基本格式,实现基本的表单样式 <form class="form-horizontal"> <div class="form-group&qu ...

  10. POST请求测试地址

    http://service.xunjimap.com/xunjiservice/common1_0_4/index?53D2CFEB65F6BBEEEB42836FE18E7E0D params.a ...