面向对象的软件设计原则

来源:互联网 发布:贺银成网络课程 编辑:程序博客网 时间:2024/05/22 11:59

下面这些设计原则是面向对象设计的基石,在我们的设计过程中应当尽可能遵循它们。但是在某些情况下,可能并不需要百分之百遵循这些原则。

1. 开闭原则

软件应该对扩展开放,对修改关闭。

开闭原则是设计模式的基石。在设计一个模块时,应该考虑到该模块可以在不修改代码,而是通过扩展该模块的方式来更改模块的功能。开闭原则下,软件系统尤其是核心抽象模块应该保持稳定。

​实现开闭原则的关键是抽象化。设计出一个未来可以不再更改的抽象,抽象层预见了未来可能的所有变化。

2. 里氏替换原则

​任何基类可以出现的地方,子类一定可以出现。

它是“开闭”原则的补充。实现开闭原则的关键是抽象化,而里氏替换原则正式抽象化的规范。

3. 依赖倒置原则

​要依赖于抽象,不要依赖于实现。

​它是“开闭”原则的实现手段。要想实现“开闭”原则, 就要坚持依赖倒转原则。

4. 组合/聚合复用原则

要尽量使用聚合/组合,而不是继承关系达到复用的目的。

与里氏替换原则一样,都是实现“开闭”原则的手段。在设计软件系统时,应该首先考虑组合/聚合的方式,然后在需要使用继承的方式时,需要遵循里氏替换原则。

5. 迪米特法则

一个软件应当尽可能少的与其他实体发生相互作用。

当系统功能需要更改时,如果某些模块是孤立的,那么在修改时,它的修改压力就不会传递给其他模块。

6. 接口隔离原则

应该为客户端(接口调用者)提供尽可能小的单独的接口,而不要提供大的总接口。

接口隔离原则与迪米特法则类似,都是对一个软件实体与另一个实体通信的限制。迪米特法则限制的通信的宽度与深度,而接口隔离原则限制的是通信的宽度,也就是通信应该尽量窄。在代码上就是细化通信接口。

0 0
原创粉丝点击