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