1、SRP,单一职责原则:就一个类而言,应该仅有一个引起它变化的原因
一个类只能有一个功能,以便于以后的扩展,可如果没有变化的征兆可以先不用这个原则,等到变化发生时在重构。
2、OCP,开放封闭原则:软件实体应当对扩展开放,对修改关闭,即软件实体应当在不修改的前提下扩展
一个类要改变功能,应该在不改变原有方法的前提下扩展。一般可以通过委托实现。它的关键在于抽象,以及将所有变化封装。
3、LSP,Liskov替换原则:子类应当可以替换父类并出现在父类能够出现的任何地方
继承时,父类的方法都要在子类中实现或者重写。
4、DIP,依赖倒置原则:依赖于抽象而不是实现
父类不应该依赖子类,他们都该依赖于抽象,同时抽象不应该依赖于细节,细节应该依赖于抽象。因此,任何类都不该重具体类派生,任何类都不该覆写它父类中已经实现的方法,要针对接口编程。
5、ISP,接口隔离原则:使用多个专门的接口比使用单一的总接口要好
一般可以使用委托和多继承实现,每个接口的功能最好单一,类似于单一职责原则。