里氏代换
父类出现的地方一定能够用子类来替换,因此要将父类设计为抽象的,而不要具体实现。
开闭原则
对修改关闭,对扩展开放。
依赖倒转
依赖于抽象,而不要依赖于具体。高层不要依赖于低层,两者都要依赖于抽象。
接口隔离
接口不要设计的太冗余,要尽量多的划分接口,通过组合多个接口能够使得程序设计更加灵活。
迪米特法则
通过合理的引入中间类来做中介,降低耦合,避免类之间的直接依赖。
单一职责原则
每个类都有自己的任务,一个类只实现一个功能,拆分职责,细化功能粒度,各司其职。
合成复用原则
多用组合少用继承。