第 2 周总结 - 架构中的设计模式
面向对象设计的目标
高内聚、低耦合
易扩展、可移植、更简单
实际情况是需求总在变化,你的程序如何应对这些变化?
OOD 遵循的原则
原则一:开闭原则 OCP
即:对修改关闭,对扩展开放
实现开闭原则,可以使用很多方法,比如以下常见的设计模式:
策略模式
适配器模式
观察者模式
原则二:依赖倒置原则 DIP
即:高层不依赖低层,而应该由高层进行抽象,由低层去实现
它是架构师的核心技能
框架的核心是遵循好莱坞原则:Don't Call Me, I'll Call You.
应该由框架主动调用代码,而不是代码调用框架。即:框架定义接口,代码去实现框架,就可以达到框架主动调用代码的效果。
原则三:里氏替换原则 LSP
即:凡是使用基类的地方,一定也适用于其子类。用于判断,在父类、子类场景中,子类可以完全替换父类,就是符合 LSP
不满足 is a 关系的继承,一定不符合 LSP,例如:正方形 is a 长方形吗?
出现不符合 LSP 的征兆:功能退回;子类定义父类未定义的异常;
继承和组合是 OOP 的两种手段
原则四:单一职责原则 SRP
即:一个类只提供单一的功能。当一个类的逻辑太多的时候,就可以考虑优化。
原则五:接口隔离原则 ISP
定义多个职责单一的接口,但是由一个实现类去实现他们,对外暴露多个接口。实现接口隔离原则,保证:不强迫,不同的应用程序必须看到用到他不需要的方法/内容
评论