一、设计模式的六大基本原则
1.单一职责原则(Single Responsibility Principle,SRP)
一个类而言,应该仅有一个引起它变化的原因。通俗的说就是一个类应该是一组性质相似,相关性很高的方法和属性的集合。
2.开闭原则
对扩展是开发的,对修改是封闭的。在维护升级我们的代码的时候,我们应该尽量不去修改之前的代码而破坏它现有的结构,而是应该通过扩展继承的方式在进行修改。
3.里氏替换原则
里氏替换依赖于面向对象的继承和多态这两个特点。它的定义是任何使用基类的地方都可以使用子类,当使用子类替换父类的时候我们的代码并不会产生错误异常。但是反过来的话如果在使用子类的地方,并不能直接使用父类对象。
4.依赖倒置原则
高层模块不应该直接依赖底层模块,而是这两者都依赖于抽象。抽象不依赖具体而具体依赖于抽象。
5.接口隔离原则
类与类之间的关系应该建立在接口上面,不需要的接口不应该依赖。这还是为了降低耦合。
6. 迪米特原则
一个类应该尽量的对依赖或者调用的类知道的最少,如果依赖的类或者调用的类有变化,那对我们现在的类的影响应该尽量的小。
二、分类
设计模式目前有23种,总体上大概分为3类。
- 创建型模式(5种):
单例模式、工厂方法模式、抽象工厂模式、Builder模式、原型模式。
- 结构型模式(7种):
适配器模式、装饰器模式、代理模式、组合模式、享元模式、外观模式、桥接模式
- 行为型模式(11种):
观察者模式、策略模式、责任链模式、命令模式、状态模式、模板模式、迭代器模式、备忘录模式、访问中模式、中介者模式、解释器模式
下面我们将逐一介绍这些模式。