1、开放/封闭原则
模块应该对扩展开放,对修改关闭。
每个类型应该是固定的,不在未来有任何变化,更不要修改类型的源代码。即类型对修改关闭。
每次发生变化时,要通过添加新代码来增强现有类的行为,而不是修改原有代码。可以使用如下两种方式:
①用组合创建新的类型。
②使用安全干净的继承体系。
在类型继承中,应该仅仅添加新代码,不应该修改任何继承得到的上下文。
2、里氏替换原则子类应该可以替代基类使用。
并不是所有的子类都能安全地替换其基类使用。如何保证呢?
慎重处理sealed和virtual关键词。
虚方法不应该访问到私有成员,因为对私有成员的访问无法在重写中实现。
3、依赖倒置原则目的在于重用高层次的模块,而不是低层次的组件。
高层次的组件不应该依赖于低层次组件,二者均应依赖于接口。
抽象不应该依赖于细节,细节应该依赖于抽象。
依赖倒置原则经常是指控制反转。
标签:组件,原则,修改,高级,依赖于,面向对象,类型,应该 From: https://blog.51cto.com/u_3319687/6581466