设计模式分为三大类:
创建型模式(五种):单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式
结构型模式(七种):适配器模式、桥接模式、组合模式、装饰者模式、外观模式、享元模式、代理模式。
行为型模式(十一种):访问者模式、模板模式、策略模式、状态模式、观察者模式、备忘录模式、中介者模式、迭代器模式、解释器模式、命令模式、责任链模式。
设计模式遵守的六大原则:
1. 单一职责原则
基本介绍:对于类来说,尽量每个类负责一项职责。如类中负责多项职责:职责A、职责B,当职责A的需求变动时需要修改该类,那么就可能会引起职责B的执行错误。这种情况就违反了单一职责原则。
2. 接口隔离原则(Interface Segregation Principle)
基本介绍:在接口中有一些方法子类是用不到的,由于接口的特性却必须去实现。这个时候就需要对该
接口进行拆分。即一个类对另一个类的依赖应该建立在最小的接口上。
3. 依赖倒转原则(Dependence Inversion Principle)
依赖倒转(倒置)的中心思想是面向接口编程,当依赖到某个类时,不直接与该具体类交互,而是通过具体类的上层接口进行交互。
4. 里氏替换原则(Liskov Substitution Principle)
简单来说就是所有引用基类的地方必须能透明地使用其子类的对象
5. 开闭原则(Open Closed Principle)
开闭原则是编程中最基础、最重要的设计原则,一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节。编程中遵循其它原则,以及使用设计模式的目的就是遵循开闭原则。
6. 迪米特法则(Demeter Principle)
迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public 方法,不对外泄露任何信息。
最少知道原则的另一个表达方式是:只与直接的朋友通信。类之间只要有耦合关系,就叫朋友关系。耦合分为依赖、关联、聚合、组合等。我们称出现为成员变量、方法参数、方法返回值中的类为直接朋友。局部变量、临时变量则不是直接的朋友。我们要求陌生的类不要作为局部变量出现在类中。
7. 合成复用原则(Composite Reuse Principle)
尽量使用合成/聚合的方式,而不是使用继承