摘要: 1. 背景 类A是高层代码,类A直接依赖B,如果要将类A改为还要依赖C,则必须修改类A的代码来实现。在实际场景中,类A是高层,负责业务逻辑,类B和类C是低层模块,负责基本的原子操作,假如修改A,会给程序带来不必要的风险。 2. 定义 高层模块不直接依赖低层模块,二者都应该依赖其抽象(抽象类或接口), 阅读全文
posted @ 2017-07-01 20:54 Yaopengfei 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 有一个功能p1,由类A完成,现在需要将功能p1进行扩展,扩展后的功能为p3,p3由原功能p1和新功能p2组成,而新功能p3和p2均由类A的子类B来完成,子类B在完成新功能p2的同时,可能会导致原有的功能p1故障。 2. 定义 所有引用基类的地方能透明的使用其子类对象进行替代。 3. 对应 阅读全文
posted @ 2017-07-01 09:17 Yaopengfei 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 1. 背景 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 2. 定义 不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 3. 宏观上 类层次上存在单一职责原则,同样方法层次上也存在单一职责 阅读全文
posted @ 2017-07-01 09:16 Yaopengfei 阅读(902) 评论(1) 推荐(0) 编辑