强内聚松耦合
接口
依赖倒转原则:抽象不依赖细节,细节应该依赖于抽象。针对接口编程,不要对实现编程。高层模块不依赖底层模块。两个都应该依赖抽象。
里氏代换原则:如果一个软件实体使用的是父类的话,那么一定可以用子类完全替换掉父类也不影响使用。子类型必须能够替换到他们的父类型。只有当子类可以替换掉父类,软件单位的功能不受影响,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。
依赖倒转可以说是面向对象设计的标志,用那种语言编程不重要,如果编程时考虑的是如何针对抽象编程而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类 或者接口,那就是面向对象的设计,反之就是面向过程的设计了。
decorator模式:装饰模式