三大分类:
- 创建型模式
-
- 单例
- 建造者
- 工厂
- 抽象工厂
- 原型
- 结构型模式
-
- 适配器
- 代理
- 装饰
- 桥接
- 组合
- 外观
- 享元
- 行为型模式
-
- 观察者
- 策略
- 责任链
- 模版方法
- 命令
- 迭代器
- 中介者
- 备忘录
- 解释器
- 状态
- 访问者
六大原则:
- 单一职责:不要让一个类承担过多职责,避免耦合
- 开放封闭:需求改变时应尽量通过拓展的方式,避免通过修改原来的代码,引入新的错误到旧有代码中
- 里氏替换:尽量把父类设计为抽象类或者接口,让子类继承父类或实现父接口,并实现在父类中声明的方法,在运行时再确定其子类类型,用子类实例来替换父类实例
- 依赖倒置:高层模块不应依赖低层模块,抽象不应依赖细节
- 迪米特(最少知识):一个类应该尽量减少与其他类之间的交互,避免耦合
- 接口隔离:设计接口时,应该将庞大、臃肿的接口拆分成更小、更具体的接口,让客户端只依赖它实际需要的接口