写点什么

软件组件设计原则

用户头像
积极&丧
关注
发布于: 2020 年 12 月 27 日

软件的复杂度和它的规模成指数关系


  • 组件内聚原则

  • 组件内聚原则主要讨论拿些类应该聚合在一个组件中,以便组件既能提供相对完整的功能又不至于过于庞大。

  • 复用发布等同原则

  • 软件复用的最小粒度应该等同于其发布的最想粒度。也就是说,如果你希望别以怎样的粒度复用你的软件,你就应该以怎样的粒度发布你的软件。这其实就是组件的定义了,组件是软件复用和发布的最小粒度软件单元。这个粒度既是复用粒度,也是发布的粒度。


  • 共同封闭原则

  • 我们应该将那些会同时修改,并且为了相同目的而修改的类放到同一个组件中。而将不会同时修改,并且不会为了相同目的而修改的类放到不同的组件中。

  • 组件的目的虽然是为了复用,然而开发中常常引发问题的,恰恰在于组件本身的可维护性。如果组件在自己的生命周期中必须经历各种变更,那么最好不要涉及其他组件,相关的变更都在同一个组件中。这样,当变更发生的时候,只需要重新发布这个组件就可以了,而不是一大堆组件都要受到牵连。

  • 共同复用原则

  • 不要强迫一个组件的用户依赖他们不需要的东西。

  • 这个原则一方面是说,我们应该将相互依赖,共同复用的类放在一个组件中。

  • 一个数据结构容器组件,提供数组、Hash 表等各种数据结构容器,那么对数据结构遍历的类、排序的类也应该放在这个组件中,以使这个组件中的类共同对外提供服务。

  • 另一方面,这个原则也说明,如果不是被共同依赖的类,就不应该放在同一个组件中。如果不被依赖的类发送变更,就会引起组件变更,进而引起使用组件的程序发生变更。这样就会导致组件的使用者产生不必要的困扰,甚至讨厌使用这样的组件,也造成了组件的复用的困难。

  • 组件耦合原则

  • 讨论组件之间的耦合关系应该如何设计。

  • 无循环依赖原则

  • 组件依赖关系不应该出现环。例如 组件 A 依赖 B、组件 B 依赖 C、组件 C 依赖 A,形成循环依赖。

  • 文档依赖原则

  • 组件依赖关系必须指向更稳定的方向。较少变更的组件是稳定的,也就是说,经常变更的组件是不稳定的。不稳定的组件应该依赖稳定的组件。

  • 文档抽象原则

  • 一个组件的抽象化程度应该与其稳定性程度一致。一个稳定的组件应该是抽象的,而不稳定的组件应该是具体的。

  • 如果你设计的组件具体、不稳定、那么可以为这个组件对外提供服务的类设计一组接口,并把这组接口封装在一个专门的组件中,那么这个组件相对就比较抽象、稳定。

  • jdbc

  • 组件的边界与依赖关系,不仅仅是技术问题

  • 业务

  • 组织

  • 康威定理

用户头像

积极&丧

关注

还未添加个人签名 2019.02.13 加入

还未添加个人简介

评论

发布
暂无评论
软件组件设计原则