引言
编写软件过程中,程序员面临着来自耦合性、内聚性以及可维护性,可扩展性,重用性,灵活性等多方面的挑战,设计模式就是为了让程序或者软件,具有更好的以下特性:
- 代码重用性
- 可读性
- 可扩展性
- 可靠性
- 使程序呈现高内聚,低耦合的特性
设计模式有24种,我们比较熟悉的有单例模式,工厂模式,代理模式等,设计模式应该遵从哪些原则呢?一般有7种。
单一职责原则
单一职责是指在类层面,接口层面,方法层面的职能都是单一的。
接口隔离原则
用多个职能专一的接口,而不是使用将多种职能的方法集中在一起的接口。
依赖倒置原则
上层模块不应该依赖下层模块,二者都应该依赖抽象。
里氏替换原则
如果对每个类型为T1的对象o1都有类型T2的对象o2,使得以T1定义的所有程序P在所有的对象o1都替换成o2时,程序P的行为没有发生改变,那么类型T2是类型T1的子类型。换句话说,所有引用基类的地方必须能透明地使用其子类对象。
开闭原则
一个软件实体,如类,模块和函数应该对扩展开放(提供方),对修改关闭(适用方)。
迪米特法则(最少知道原则)
一个对象应该对其他对象保持最少的了解。一个对象只需要保持对其朋友对象的关注就好,其他的交给中介类。
合成复用原则
尽量使用对象组合,而不是继承来达到复用目的。