学习COM设计模式笔记

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了学习COM设计模式笔记脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

学习COM设计模式笔记

ref: component Object Model Wiki, NS3 ArchITecture Ref

  1. COM产生的原因是在逻辑上可相互替换的模块间使用的接口无法统一, 导致如果需要使用继承进行实现模块的拓展会导致父类的过于虚拟, 造成代码重用的效率降低.

  2. NS3中使用COM设计模式的方法是在Object类下定义一个AggregationVector, 该向量的类型是Object也就是说所有类型的对象都可以放置在该向量中, 然后通过模块间使用QueryInterface的形式取回需要依赖的对象, 然后进行通信.

    该设计中, Object对象拥有了一个无筛选的容器控件, 用于放置需要捆绑在一起的模块对象, 通过模块之间隐性的相互调用达成建立模块系统的目的

  3. 对比基于回调实现的微服务架构, 我认为由于微服务架构所涉及的业务逻辑较为单一, 接口高度一致. 所以使用了基于继承和IOC的设计模式. 即使是中间件间的相互调用也是通过在IOC容器生成静态函数调用链的形式进行.

    相比而言COM设计给模块接口以及调用的自由度大大提升, 但是由于没有定义在外部的明确调用逻辑, 导致模块之间的调用较为混乱, 在没有阅读每个模块之前, 很难明确模块之间的调用顺序. 这对于较为复杂的系统会增加维护以及更新成本

  4. 总结: 对于某个需求设计代码架构的时候, 需要对该类需求进行尽可能特化的设计模式. 对于模块之间的关系, 应该尽可能的清晰, 以便后续的开发. 但是对于设计目的较广的系统, 可以使用类似COM的这种高自由度的架构, 但是对于这种架构需要留出充足的文档

    对于新项目的上手, 一个很重要的知识积累就是项目的常见设计模式. 积累常见的设计模式可以快速地对于代码设计进行分类, 在阅读代码时可以对尚未阅读地部分进行预测.

脚本宝典总结

以上是脚本宝典为你收集整理的学习COM设计模式笔记全部内容,希望文章能够帮你解决学习COM设计模式笔记所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。