设计模式7大原则
参考:
如有错误之处,敬请指教。
开闭原则
开闭原则的定义是对扩展开放,对修改关闭。当应用程序的需求需要改变或扩展时,我们应该在不修改其源代码的 情况下,也能完成相应的目的。
开闭原则的优点是:使得应用程序更易于维护和扩展。
里氏替换原则
里氏替换原则的定义是继承必须确保超类所拥有的性质在子类中仍然成立,即在基类出现的地方,其子类一定可以出现, 子类可以扩展基类的功能,但是尽量不要重写基类的功能。
里氏替换原则的优点是: 可以规范我们在正确的地方使用继承,而不至于造成继承的使用泛滥。
依赖倒转原则
依赖倒转原则是实现开闭原则的基础,它的意思是当我们在编写面向对象的应用程序时,我们需要针对接口或抽象类编程, 而不具体的依赖某个实现类,这样可以降低系统之间的耦合性。
依赖倒转原则的优点是: 通过抽象建立系统之间的关系,使得系统具有高度的可维护性和可扩展性。
单一职责原则
单一职责原则规定一个类应该有且仅有一个能够引起它变化的原因,否则此类应该被拆分。单一职责的意思是不应该让一个类 承担太多职责,否则如果一个职责修改,其他职责可能也会跟着修改,且如果一个客户端只需要这个类的一个职责时, 那么客户端不得不承受引入其他职责的代价。
单一职责原则的优点是: 提高了代码的可读性,不至于一个类里啥元素都有,且系统之间更加的高内聚与低耦合。
接口分离原则
接口分离原则描述的是当一个接口的功能和职责太多时,我们需要将这个大接口分割成若干小接口,每一个小接口只 服务于其对应的客户端。但是我们也需要控制每个小接口的粒度,如果粒度太小,那么会增加许多冗余的接口,不利于维护。
接口分离原则的优点是: 避免一个接口里含有不同的职责,每个接口的职责分明,与单一职责相似,都符合高内聚与低耦合的思想。
迪米特法则
迪米特法则又称 "最少知道原则" , 它的定义是 "只与你的朋友交谈,不与陌生人说话", 这句话的含义是如果两个软件实体或 服务之间无需直接通信,那么就不应当发生直接的相互调用,可以通过第三方实体或服务进行转发通信。 其目的是为了降低系统的耦合度。
迪米特法则的优点是: 降低系统的耦合性,减少系统之间的关联,也符合高内聚与低耦合的思想。
合成复用原则
合成复用原则规定 当我们需要复用一些系统的代码的时候,应该优先考虑组合或聚合的方式实现,其次再考虑使用继承的方式实现。 如果一个基类的功能太多,而你只想复用一部分功能,使用继承就意味着不需要的功能也会被添加到当前系统中来,这就造成了不必要的麻烦。 所以可以优先考虑使用组合的方式完成代码的复用。
合成复用原则的优点是: 使系统易于维护,提高代码的可读性。