摘要:
DIP(Dependency Inversion Principle) 定义:高层模块不应该依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 当高层的Pollcy 使用底层的Mechanlsm, 而Mechanlsm又使用更细节的Utility时。Pollcy对于其下 阅读全文
摘要:
LSP(Liskov Substitution Principle) 定义:子类型必须能够替换掉它们的基类型。 若对每个类型S的对象o1,都存在一个类型T的对象o2。使得在所有针对T编写的程序P中,用o1替换o2后,程序P的功能不变,则说明S是T的子类型! 一个违反该原则的例子 长方形: 正方形: 阅读全文
摘要:
OCP(The Open Closed Principle): 定义: 对拓展开放:也就是说模块的行为是可扩展的,当应用程序中的需求发生改变时,我们可以使模块表现出全新的或与以往不同的行为。 对更改封闭:模块的源代码是不可更改的,已经实现的功能源代码任何人都不允许修改。 开放针对的是新增的功能,更改 阅读全文