面向对象设计的五大原则:
1、单一职责原则 对于一个类,应该只有一个引起他变化的原因,否则便应当重构。
2、开放封闭原则 对扩展开放,对修改封闭
3、依赖倒置原则 高层模块不应该依赖于底层模块,二者都应该依赖于抽象;抽象不应该依赖于细节,细节应该依赖于抽象。
4、接口分离原则 不应该强迫客户依赖于他们不用的方法;多个专用的接口好过一个通用的接口。
5、Liskov 替换原则 子类应当可以完全替换其父类。其意是子类应该重载父类的行为而不是重写父类的行为。
另外还有两个比较重要的原则:
组合/聚合原则 尽量使用合成/聚合达到复用,尽量少用继承。一个类中尽量引用另一个类来使用其功能,而不是通过继承。
迪米特法则 又叫最少知识原则,一个对象对另一个对象知道的越少越好,即一个软件实体尽可能少的与其他实体发生关系。