组件化设计及边界定义

软件开发行业共识,应该将复杂的软件进行拆分,拆成多个低复杂度的子系统,子系统还可以继续拆分成更小粒度的组件。即软件需要进行模块化,组件化设计。

Java 开发依赖的一个个 Jar 包就是组件。

软件设计的核心目标是 高内聚,低耦合

组件内聚原则

组件的高内聚可以遵循以下三个原则。

  • 复用发布等同原则:软件复用的最小粒度应该等同于其发布的最小粒度。
  • 共同封闭原则:将那些同时修改,并且为了相同目的而修改的类放到同一个组件中;将不会同时修改,并且不会为了相同目的而修改的类放到不同的组件中。
  • 共同复用原则:应将互相依赖、共同复用的类放在同一个组件中。不要强迫一个组件的用户依赖他们不需要的东西。

组件耦合原则

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

  • 无依赖循环原则:组件关系中不应该出现循环依赖。出现组件循环依赖,系统就会变得非常不稳定,可能会出现莫名其妙的问题。

  • 稳定依赖原则:组件依赖必须指向更稳定的方向。即变更不稳定的组件,要依赖稳定的组件。

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

    以 JDBC 为例,在JDK 中定义 JDBC 接口组件抽象,位于 java.sql 包,应用开发时使用 JDBC 的接口编程。发布应用时需要指定具体的实现组件,可以是 MySQL 实现的 JDBC 组件,也可以是 Oracle 实现的组件。

作者

光星

发布于

2022-07-09

更新于

2022-07-18

许可协议

评论