面向对象设计的基本原则:
开放原则:对扩展开放,对修改关闭(提炼出可能变化的部分并且使用接口或者超类)
完全替换:子类可以完全替换父类,即子类与父类的关系是:‘是’;派生类和基类必须拥有相同的接口定义,此外对于接口中的每一个方法,派生类和基类还必须拥有相同的前提条件和后置条件
依赖倒置原则:编程依赖于接口,抽象的编码而不是具体的类和编码;在这种依赖关系中,客户程序不会直接调用派生类的任何方法,而只是调用基类的方法,基类方法通过调用自己的虚函数来把控制权传递给应用程序实现的具体的派生类,即基类依赖于特定的派生类(上图的模块二的设计可以体现这种原则)
非循环依赖:即避免出像a依赖b,b依赖c,c依赖a的情况