摘要:使用设计模式能够使我们开发的程序,易维护、可拓展,可复用。在23个设计模式的背后,还有7个开发原则去支撑着设计模式,保证23个设计模式能够易维护、可拓展,可复用。这篇文章来解开七大设计原则的神秘面纱。
设计模式中分别是创建型,结构型,行为型,总共有23种设计模式。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误出来的。
使用设计模式能够使我们开发的程序,易维护、可拓展,可复用。在23个设计模式的背后,还有7个开发原则去支撑着设计模式,保证23个设计模式能够易维护、可拓展,可复用。这篇文章来解开七大设计原则的神秘面纱。
SOLID 是面向对象设计5大重要原则的首字母缩写,当我们设计类和模块时,遵守 SOLID原则可以让软件更加健壮和稳定。(迪米特与组合/聚合是后加的)
单一职责原则(SRP:Single responsibility principle)
1.设计原则的概念:
就一个类而言,应该仅有一个引起它变化的原因。
符合单一职责原则的类具有高内聚的特性
2.详细解释
每一个职责都是变化的一个轴线,如果一个类有一个以上的职责,这些职责就耦合在了一起。耦 合会影响复用性。
如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
要遵守单一职责原则,避免将不同职责的功能或接口写到同一个类中,增加了耦合性。
开闭原则(OCP:Open Closed Principle)
1.设计原则的概念:
软件实体(类、模块、函数等)应该可以扩展,不可修改。
对扩展是开放的,对于更改是封闭的。
面对新需求,对程序的改动是通过增加新代码进行的,而不是更改现有的代码
2.详细解释
当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。
编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则。
开闭原则是所有原则中重要的原则,它是所有原则的“老大”,其他原则是服务于开闭原则的。
里氏替换原则(LSP:liskov substitution principle)
1.设计原则的概念:
子类型必须能够替换掉他们的父类型。所有引用父类的地方必须能透明地使用其子类的对象。
只有当子类可以替换掉父类、软件单位的功能不受影响时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为
正是由于里氏代换原则,才使得开放-封闭成为了可能。
由于子类型的可替换性才使得使用父类类型的模块在无需修改的情况下就可以拓展。