23种设计模式+六大基本原则
2017-07-03 21:52
162 查看
最近刚把《大话设计模式》看完,感觉这本书讲的还是很生动的。下面的几篇博客我将对其中的23种设计模式进行详细讲解,这篇博客先简单列举一下23种设计模式的名字以及我对六大基本原则的简单理解。
创建型模式:
工厂方法模式
抽象工厂模式
原型模式
建造者模式
单例模式
结构型模式:
装饰模式
代理模式
适配器模式
享元模式
外观模式
组合模式
桥接模式
行为型模式:
策略模式
模板方法模式
观察者模式
状态模式
备忘录模式
迭代器模式
命令模式
职责链模式
中介者模式
解释器模式
访问者模式
六大原则:
1、单一职责原则:书上比较官方的说法是 “就一个类而言,应该只有一个引起他变化的原因。”。其实直白点说就是一个类的功能尽量简单,避免一个类中封装过多的功能方法,在设计类的时候避免让它太过庞大。
2、开闭原则:对扩展开放,对修改关闭。也就是说,当需求变更的时候,尽量不要去修改原有代码,而是去增加新的代码。
3、里氏代换原则:在程序中,子类可以替换掉父类并且不会对程序的运行结果造成影响。这里一个比较典型的例子就是鸵鸟是鸟吗?在生物学中,鸵鸟是鸟的一种,但是在面向对象的世界里,鸵鸟不是鸟。因为如果把鸟看成一个类的话,鸟一定会有一个飞的方法,而鸵鸟不会飞,因此鸵鸟不能够继承鸟类。
4、依赖倒置原则:抽象不依赖细节,细节依赖抽象。其实这也就是让我们在程序开发时,面对接口编程而不是实现。
5、合成聚合复用原则:要理解这个原则首先要明白合成和聚合的概念。举个栗子,大雁和翅膀的生命周期是一样的,因此大雁和翅膀属于合成关系。而雁群和大雁则是一种聚合关系。当我们可以使用合成或者聚合的时候,就尽量不要使用继承了,这样其实也是减少了类之间的耦合,避免一个类因为多层继承而显得很庞大。
6、迪米特法则(最少知道原则):如果两个类不必彼此直接通讯,那么这两个类就不应该直接发生作用。这就要求我们在设计类的时候,尽量降低类的成员的访问权限。它的根本思想其实也是松耦合。
创建型模式:
工厂方法模式
抽象工厂模式
原型模式
建造者模式
单例模式
结构型模式:
装饰模式
代理模式
适配器模式
享元模式
外观模式
组合模式
桥接模式
行为型模式:
策略模式
模板方法模式
观察者模式
状态模式
备忘录模式
迭代器模式
命令模式
职责链模式
中介者模式
解释器模式
访问者模式
六大原则:
1、单一职责原则:书上比较官方的说法是 “就一个类而言,应该只有一个引起他变化的原因。”。其实直白点说就是一个类的功能尽量简单,避免一个类中封装过多的功能方法,在设计类的时候避免让它太过庞大。
2、开闭原则:对扩展开放,对修改关闭。也就是说,当需求变更的时候,尽量不要去修改原有代码,而是去增加新的代码。
3、里氏代换原则:在程序中,子类可以替换掉父类并且不会对程序的运行结果造成影响。这里一个比较典型的例子就是鸵鸟是鸟吗?在生物学中,鸵鸟是鸟的一种,但是在面向对象的世界里,鸵鸟不是鸟。因为如果把鸟看成一个类的话,鸟一定会有一个飞的方法,而鸵鸟不会飞,因此鸵鸟不能够继承鸟类。
4、依赖倒置原则:抽象不依赖细节,细节依赖抽象。其实这也就是让我们在程序开发时,面对接口编程而不是实现。
5、合成聚合复用原则:要理解这个原则首先要明白合成和聚合的概念。举个栗子,大雁和翅膀的生命周期是一样的,因此大雁和翅膀属于合成关系。而雁群和大雁则是一种聚合关系。当我们可以使用合成或者聚合的时候,就尽量不要使用继承了,这样其实也是减少了类之间的耦合,避免一个类因为多层继承而显得很庞大。
6、迪米特法则(最少知道原则):如果两个类不必彼此直接通讯,那么这两个类就不应该直接发生作用。这就要求我们在设计类的时候,尽量降低类的成员的访问权限。它的根本思想其实也是松耦合。
相关文章推荐
- 设计模式之六大基本原则
- 23种 设计模式---面向对象的基本原则 (转)
- 设计模式遵循的六大基本原则
- 设计模式六大基本原则
- 设计模式六大基本原则
- 23种设计模式-设计模式六大原则
- 面向对象的23种设计模式与六大原则
- 23种设计模式-设计模式六大原则
- js 设计模式六大基本原则(未完成)
- 代码重构 +设计模式六大原则 + 23种设计模式
- 设计模式中的六大基本原则
- 设计模式六大基本原则之二:里氏替换原则
- 设计模式的六大基本原则:
- 常见23种设计模式和设计模式六大原则,你用了多少?
- 23种设计模式图片以及设计模式六大原则
- 大话设计模式(读后感)——23种设计模式、六大原则
- GOF提出的23种设计模式是哪些 设计模式有创建形、行为形、结构形三种类别 常用的Javascript中常用设计模式的其中17种 详解设计模式六大原则
- 重学java23种设计模式-软件设计基本原则
- 面向对象设计的六大基本原则(设计模式6大原则)
- JAVA的23种设计模式---前置:6大基本原则