定义
每一个类都应该有一个单一的功能
一个类或者模块应该有且只有一个改变的缘由编程
规范
定义类的方法
避免类之间耦合度过高设计
定义
只要有父类出现的地方,均可以用子类来替代继承
规范
不要破坏继承体系
增长子类的时候系统能够正常执行接口
定义
高层模块不该该依赖底层模块,应该依赖其抽象
抽象不该该依赖细节,细节应该依赖抽象扩展
规范
面向接口编程
结合里氏替换原则使用软件
定义
客户端应该依赖最小的接口上
客户端不该依赖它不须要的接口方法
规范
接口方法应该尽可能细化 (单一职责)客户端
定义
最少知道原则
一个实体应当尽可能少的与其余实体之间发生相互做用,使得系统功能模块相对独立。底层
规范
下降类之间的耦合度,提升模块的相对独立性
提升了类的可复用率和系统的扩展性系统
定义
对扩展开放,对修改关闭
规范 尽可能经过扩展软件实体的行为来实现变化,而不是经过修改已有的代码来实现变化