模块与模块之间通信设计-组件设计思想

来源:互联网 发布:超级星饭团好友没网络 编辑:程序博客网 时间:2024/06/05 09:22
 --模块与模块之间的设计,除了大范围的设计模式,更多不属于模式的多种方法调用都可以通信。
        -- 如何设计低耦合的,高内聚的模块之间通信?原则:
        -- 1.用管理器用接口,尽量关联接口(管理器),在其它模块中用管理器设置和调用,而不是关联具体的类(会导致太错综复杂)。
        -- 2.高内聚控制变量,关于本模块相关的控制尽量写在自身模块中,其它模块调用本模块设置,而不是依赖于其它模块的控制变量。
        -- 这样一个程序员负责自己的模块,赋值其它模块的程序员不需要为本模块维护控制变量。
 
       组件的设计思想也是一个组件做一个单一职责,然后组装作为一个独立管理器或接口(GameObject)。
        -- 内部的通信是通过注册了RegisterMessage到父类数据结构,SendMessage时候父类会分发调用(中介者统一管理)。
        -- GameObject外部通信,也是要大的对象管理器(map或hashMap)管理,大多数时候是管理器Update,GameObject各自OnUpdate完成自己的逻辑。
        -- GameObject之间通信,确是要自己创建关联对方对象或节点(transform),通过GameObject.Find("/CamPosCtrl/mainCamera")查找到。
        -- 也是要在大的管理器中进行查找通信。
   也是要在大的管理器中进行查找通信, 通过数据结构进行大场景管理, 游戏框架中调用大管理器模块的接口实现对象的创建,更新,替换,删除逻辑。

   -- 数据结构细节算法->对象实例->数据结构对象管理器=》程序 = 算法 + 数据结构
    --一个功能要单一又不能随便交给其它类负责(内聚),一类功能的逻辑接口化,模块逻辑需要管理器统一管理(或者客户管理)。


        -- 3.中介者集中管理控制变量,逻辑的耦合度比较高,传递参数过多,需要两个模块制定直接通信的结构体。或者集中到一个中介者数据容器中统一管理控制多个变量。
        -- 4.直接传递控制变量,只对耦合关系很强的。
        -- 

0 0