原则
1. 开放封闭原则
对扩展开放,对修改关闭
2. 依赖倒置原则
针对接口编程,依赖于抽象而非具体,上层不应该依赖于底层
3. LSP原则
子类应该能完全替代父类,并且出现在父类出现的任何地方
4. 最少知道原则
减少实体间的相互作用,使模块独立
5. 接口隔离原则
多个接口比单个接口好,降低依赖性,减少耦合
6. 合成复用原则
尽量使用合成或聚合的方式,减少继承
创建型模式
1. 工厂模式
适用于复杂对象,易于扩展
2. 抽象工厂模式
创建一系列相关对象的通用接口,无需指定具体的类
3. 单例模式
自己创建自己;
只有一个实例;
其他对象都可访问到;
4. 建造者模式
用多个简单对象一步步构造出复杂对象
适用:对象内部结构复杂; 对象内部相互依赖;
与工厂模式的区别:更加关注内部顺序
观察者模式
一个被观察者,多个观察者,一旦被观察者发生变化,会通知到所有的观察者
优点:解耦
缺点:
- 无法知道被观察者是如何变化的
- 被观察者之间出现循环调用
- 很多观察者都要被通知很浪费时间