设计模式五个原则
程序员文章站
2024-03-16 22:08:46
...
一、开放封闭原则
概念:开放封闭原则(Open-Closed Principle):一个软件实体
应当对扩展开放,则修改关闭。
在设计一个模块时,应当使得这个模块可以在不被修
改的前提下被扩展。也就是说,应当可以在不必修改源
代码的情况下修改这个模块的行为。
设计的目的便在于面对需求的改变而保持系统的相对
稳定,从而使得系统可以很容易的从一个版本升级到另
一个版本。
例子:未使用开放封闭原则
使用了开放封闭原则
优点:
1.通过扩展已有的软件系统,可以提供新的行
为,以满足对软件的新需求,是变化中的软件有
一定的适应性和灵活性。
2.已有的软件模块,特别是最重要的抽象模
块不能再修改,这就使变化中的软件系统有一定
的稳定性和延续性。
二、单一职责原则
概念:就一个类而言,应该仅有一个引起它变化的原因。
示例:
接受客户端输入并提交到数据库。
原有设计:
一个类负责接受客户端输入,对客户端输入进
行校验,连接数据库,并提交数据到数据库。
现有设计:
一个功能也就是一个职责由一个类来负责。
三、里氏代换原则(能放父类的地方就能放子类)
概念: 一个软件实体如果使用的是一个父类的话,那
么一定适用于其子类,而且它察觉不出父类和子
类对象的区别。也就是说,在软件里面,把父类
替换成它的子类,程序的行为没有变化。
一个软件实体如果使用的是一个子类的话,那么它不能适用于其父类。(反过来不成立)
四、依赖倒转原则
概念:1.抽象不应该依赖于细节,细节应该依赖于抽象。
2.高层模块不依赖底层模块,两者都依赖抽象。
示例:
五、迪米特法则(最少知识原则)
概念:一个对象应当对其他对象尽可能少的了解。狭义的迪米特法则:
如果两个类不必彼此直接通信,那么这两个类
就不应当发生直接的相互作用。如果其中一个类
需要调用另一类的某一个方法的话,可以通过第
三者转发这个调用。
示例: