敏捷设计(下)
2019-03-31 本文已影响0人
王加冰
一、Liskov 替换原则(LSP)
对于该原则的解释:子类型必须能够替换掉它们的基类型。
这里需要如下替换性质:若对每个类型 S 的对象 o1,都存在一个类型 T 的对象 o2,使得在对所有针对 T 编写的程序 P 中,用 o1 替换掉 o2,程序 P 行为功能不变,则 S 是 T 的子类型。
----------- Barbara Liskov二、依赖倒置原则 (DIP)
a.高层模块不应该依赖于低层模块,二者都应该依赖于抽象
b.抽象不应该依赖于细节,细节应该依赖于抽象
所有结构良好的面向对象架构都有清晰的层次定义,每个层次通过一个定义良好的、受控的接口向外提供一组内聚的服务。
程序中所有的依赖关系都应该终止于抽象或接口。
三、接口隔离原则(ISP)
不强迫客户依赖于它们不用的方法。
胖接口:如果类的接口不是内聚的,表示该类具有胖的接口,胖接口可以分解成多组方法,每一组方法都服务于一组不同的客户程序。客户程序和接口的成员函数之间互补干扰。
分离客户端就是分离接口。当不知如何分离接口时,尝试从使用方来梳理接口关系。