一、设计模式的分类
总的来说设计模式分为3大类
- 创建型模式(5种):工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式
- 结构型模式(7种):适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式
- 行为型模式(11种):状态模式、策略模式、访问者模式、迭代器模式、命令模式、观察者模式、中介者模式、备忘录模式、解释器模式、模板方法模式、责任链模式
二、设计模式的六大准则
- 单一职责原则:一个类应该只有一个引起变化的原因,尽量让每个类保持单一责任。如何去划分职责是比较难的
- 开闭原则:对扩展开放,对修改关闭;抽象约束,封装变化
- 里氏替换原则:所有引用父类的地方必须能透明地使用其子类的对象,例如:一个类为BaseClass,另一个是SubClass类,并且SubClass类是BaseClass类的子类,那么一个方法如果可以接受一个BaseClass类型的父类对象base的话
method1(base)
,那么它必然可以接受一个BaseClass类型的子类对象sub,method1(sub)
能够正常运行。反之method2(sub)
能运行,那么一般method2(base)
不能运行,除非重载 - 依赖倒置原则:面向接口编程,依赖于抽象不依赖于具体实现
- 接口隔离原则:类之间的依赖关系应该建立在最小的接口上。接口隔离原则将非常庞大,臃肿的接口拆分成更小的和更具体的接口,使系统解耦
- 迪米特原则:一个类对自己依赖的类知道的越少越好。也就是说无论被依赖的类多么复杂,都应该将逻辑封装在方法的内部,通过public方法提供给外部。这样当被依赖的类变化时,才能最小的影响该类