核心的问题:如何同时提高一个软件系统的可维护性和可复用性
原则的目的:高内聚,低耦合
单一职责原则
类的职责单一,对外只提供一种功能,而引起类变化的原因应该只有一个
开闭原则
类的改动是通过增进代码进行的,而不是修改原代码
里氏代换原则
任何抽象类出现的地方都可以用他的实现类进行替换(多态)
依赖倒转原则
依赖于抽象,不要依赖与具体的实现,对接口编程
传统设计:
优化的设计:
接口隔离原则
一个接口只提供一种对外的功能
合成复用原则
对于继承和组合,优先使用组合(即作为一个参数或者是一个内部成员)
迪米特原则(又叫最少知识原则)
一个对象应当对其他对象尽可能少的了解,从而来降低偶和