组件模式
来源:互联网 发布:程序员编辑器排名 编辑:程序博客网 时间:2024/05/16 00:39
当代码耦合时,将不同系统捆绑成一个代码球,此时就可以使用该模式从而允许单一的实体跨越多个领域而不会导致这些领域彼此耦合,为了保持领域之间相互分离,将每部分代码放入各自的组件类中。
使用场景:
1.有一个涉及了多个领域的类,而你想要保持这些领域互相隔离
2.一个类正在变大而且越来越难以使用
3.想要能定义一系列分享不同能力的类,但是使用继承无法让你精确选取要重用的部分
使用组件必然会导致多一层跳转,在性能攸关的内部循环中,这种跳转也许会导致糟糕的性能。
设计决策:
1.谁将单块对象分割为多个分离的组件拼在一起?
如果对象创建组件,也就是用硬编码的组件来组装自己,保证对象总是能拿到需要的组件,但重新设置对象比较困哪
如果外部代码提供组件,对象变成组件容器,更加灵活,可以与具体的组件类型解耦
2.组件之间要如何通信?
通过修改容器对象的状态,可以保持组件解耦,需要将组件分享的任何数据存储在容器中,这样组件的通信基于组件 运行的顺序,该方法对每个对象都有的数据很好用,否则可能会存在内存浪费。
组件有要交流的组件的引用,它们直接交流而不通过容器类。这样简单快捷,但会将交流的组件类紧紧的捆绑在一 起,对于那些紧密相关的领域组件有用。
在容器类中建立小小的消息系统,允许组件相互发送消息。使同级组件解耦,组件之间唯一的耦合就是它们发送的消息,而且容器无需知道组件使用了什么数据,只是将消息发出去。对于不那么重要的通信很有用,发送后不管的特性。
0 0
- 组件模式
- 解耦模式--组件模式
- 程序的组件模式
- 程序的组件模式
- 策略模式(组件协作)
- 观察者模式(组件协作)
- tomcat8组件编程模式
- COM组件中的线程模式
- COM组件中的线程模式
- COM组件中的线程模式
- Shell组件的"模式"样式
- COM组件中的线程模式
- Shell组件的"模式"样式
- Javascript “组件模式” 深入研究
- COM组件中的线程模式
- 界面组件的运行模式
- Unity组件的基类单例模式
- 模板方法模式(组件协作)
- Application类
- SuperWebSocket结合Windows服务实现实时消息
- new/delete与malloc/free的区别是什么
- linux初学 unit4 练习
- Web Api 的 路由机制
- 组件模式
- SpringBoot的DeferredResult实例:二、另一个请求控制请求的返回时机
- 完美解决IE兼容模式问题
- day78_babasport第四天
- 使用Flume+Kafka+SparkStreaming进行实时日志分析
- oracle ogg formatascci字段出现null问题
- Sqlite入门基础1
- Tensorflow-报错解决方案
- 为什么系统的block,AFN网络请求的block内使用self不会造成循环引用?