23个设计模式六大原则

工厂方法模式

抽象工厂模式

原型模式

建造者模式

单例模式

结构型模式:

装饰模式

代理模式

适配器模式

享元模式

外观模式

组合模式

桥接模式

行为型模式:

策略模式

模板方法模式

观察者模式

状态模式

备忘录模式

迭代器模式

命令模式

职责链模式

中介者模式

解释器模式

访问者模式

六大原则:

1、单一职责原则:书上比较官方的说法是 “就一个类而言,应该只有一个引起他变化的原因。”。其实直白点说就是一个类的功能尽量简单,避免一个类中封装过多的功能方法,在设计类的时候避免让它太过庞大。

2、开闭原则:对扩展开放,对修改关闭。也就是说,当需求变更的时候,尽量不要去修改原有代码,而是去增加新的代码。

3、里氏代换原则:在程序中,子类可以替换掉父类并且不会对程序的运行结果造成影响。这里一个比较典型的例子就是鸵鸟是鸟吗?在生物学中,鸵鸟是鸟的一种,但是在面向对象的世界里,鸵鸟不是鸟。因为如果把鸟看成一个类的话,鸟一定会有一个飞的方法,而鸵鸟不会飞,因此鸵鸟不能够继承鸟类。

4、依赖倒置原则:抽象不依赖细节,细节依赖抽象。其实这也就是让我们在程序开发时,面对接口编程而不是实现。

5、合成聚合复用原则:要理解这个原则首先要明白合成和聚合的概念。举个栗子,大雁和翅膀的生命周期是一样的,因此大雁和翅膀属于合成关系。而雁群和大雁则是一种聚合关系。当我们可以使用合成或者聚合的时候,就尽量不要使用继承了,这样其实也是减少了类之间的耦合,避免一个类因为多层继承而显得很庞大。

6、迪米特法则(最少知道原则):如果两个类不必彼此直接通讯,那么这两个类就不应该直接发生作用。这就要求我们在设计类的时候,尽量降低类的成员的访问权限。它的根本思想其实也是松耦合