设计模式的七大原则

发布时间 2023-12-19 09:32:53作者: 求简君

目的:使程序高内聚、低耦合、高重用、高灵活,可维护性好,可扩展性高。

设计模式的三种类型:

创建型:单例、工厂、抽象工厂、原型、建造者

结构型:适配器、桥接、装饰、组合、外观、享元、代理

行为型:模板法、命令、访问者、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链

七大原则:

一、单一职责原则

一个类应该只负责一项职责。

二、接口隔离原则

一个类对另一个类的依赖应该建立在最小的接口上,和单一职责原则是相通的,需要对类或接口进行适当的拆分,以避免职责过度集中。

三、依赖倒置原则

一句话,依赖抽象面向抽象编程。

1、中心思想是面向抽象编程,而不是面向对象编程,变量的声明类型尽量是抽象类或接口,这样我们的变量引用和实际对象间就存在一个缓冲层,利于程序扩展和优化

2、抽象不应该依赖细节,细节应该依赖抽象

3、高层模块不应该依赖底层模块,二者都应该依赖其抽象

四、里氏替换原则

我们所有引用基类的地方必须能透明地使用其子类的对象,所以,在子类中尽量不要重写父类的方法,可以称之为向下兼容。

继承会使两个类的耦合性增强,适当情况下,我们可以通过依赖、聚合、组合来解决问题。

五、开闭原则

对扩展开放,对修改关闭,这里的扩展是指增加现有抽象的子类或者抽象类去实现功能,而不是修改现有类的代码。

尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。

六、迪米特法则

又名最少知道原则

更简单的定义:只与直接的朋友通信。

直接的朋友:只要两个对象之间有耦合关系(依赖、关联、组合、聚合等),我们就说这两个对象之间是朋友关系。其中我们称出现成员变量、方法参数、方法返回值中的类为直接的朋友,而出现在局部变量中的类不是直接的朋友。即陌生类不要以局部变量的形式出现在类的内部。

七、合成复用原则

尽量使用合成/聚合的方式,而不是使用继承。