单一职责原则
一个类应该只有一个引起它变化的原因,一个类应该是一组相关性很高的函数,数据的封装一个类应该只有一个引起它变化的原因,一个类应该是一组相关性很高的函数,数据的封装
开放关闭原则
类应该对外扩展开放,对修改关闭。尽量通过扩展的方式实现变化(新需求),而不是修改原有代码。一个类只因错误而被修改,新的改变特性应该通过新建不同的类实现,新类可通过继承来重用原类代码。经常用于依赖注入(setCache(ImageCache cache))
里氏替换原则
子类型能替换掉其父类型.(继承和多态)。继承:优点是代码重用;缺点是有侵入性。
依赖倒置原则
抽象不应该依赖于具体实现,具体实现应该依赖于抽象。要依赖于抽象(抽象类或接口,不能实例化)而不依赖于具体类 高层模块不依赖于底层模块,二者都应该依赖于抽象。抽象不应该依赖于具体实现,具体实现应该依赖于抽象。
接口隔离原则
不强迫用户依赖于他们不用的方法。类间的依赖关系应该建立在最小的接口上(ClonseUtil)
最少知识原则
只和你的朋友说话(中介模式)
其他原则
- 面向接口编程
- 优先使用组合而非继承
- 一个类需要的数据应该隐藏在类内部
- 类之间应该零耦合或者只有传导耦合(类之间是用另一个类接口提供操作)