分类
创建型(5种):
隐藏创建细节。共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
结构型(7种):
处理类或者接口之间的关系。适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
行为型(11种):
处理子类的继承,接口的实现。策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
规则
- 开闭原则:开修改关闭,对扩展开发,在新增功能是不需要改变原来的代码,只想要新增代码,常见的如策略模式。
- 单一职责:一个类、一个接口、一个方法,负责的功能要尽可能得单一,这样可以降低代码之前的耦合度。
- 依赖倒置:对接口编程,而不是对具体编程,正交设计。
- 接口隔离:将不同的功能定义在不同的接口。
- 里氏替换:任何基类出现的地方可以使用子类,如传参中的List,不用外部传的是ArrayList还是LinkedList都可以。
- 迪米特原则:每一模块要尽可能减少对其他模块的依赖。
- 合成复用:尽可能使用聚合,减少继承。组合可以复用,继承可能导致继承爆炸。