1. 抽象不应该依赖细节,细节应该依赖于抽象(接口,抽象类)。

2. 针对接口编程,不要对实现编程。

3. 高层模块不依赖底层模块,两者都应该依赖抽象。

image

4. 依赖倒置含义在于,相互之间不依赖,除了约定好的接口实现,大家都可以灵活自如,子类实现接口进行“策略工厂”实现,高层模块通过使用接口来实现“开闭依赖倒置”。

5.依赖倒置其实可以说是面向对象设计的标志,用何种方式实现不重要,重要在于如何考虑针对抽象编程,而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是面向过程化的设计。

 

里氏代换原则

image

1.意思就是从需求行来说,通过父类(接口,抽象类)继承,子类实现父类中所有的非 Private 接口,来编程和定义交互,如果子类的需求有任何一个无法不符合父类的所有Public成员,则不能继承这个父类,因为子类将无法替换掉父类,当然现在的编程工具都是强制实现父类的。

2. 只有当子类可以替换掉父类,软件单位的功能不受限制时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

3.由于子类型的可替换性,才使得使用父类类型的模块在无需修改的情况下就可以扩展。

posted on 2009-11-30 15:23  冯瑞涛  阅读(1138)  评论(0编辑  收藏  举报