• 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

  • 相关阅读:
    gatekeeper学习概述
    通过浏览器下载服务器文件(日志)
    Jetty启动配置解析
    java单元测试小结
    TCP重传机制的学习应用
    laravel安装笔记 (转)
    TortoiseGit安装和使用的图文教程
    (转)HTML精确定位:scrollLeft,scrollWidth,clientWidth,offsetWidth之完全详解
    PHP session 跨子域问题总结
    PHP session详解
  • 原文地址:https://www.cnblogs.com/mcyushao/p/9428130.html
Copyright © 2020-2023  润新知