1.类单一职责
一个类只负责一项职责,不要存在多余一个职责导致类的变更。
比如:类A负责两个不同的职责,b,c职责。由于b职责需求发生变化而需要改变A类,原本运行正常的c职责出现故障。
2.里氏替换原则
1.子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法。
2.子类中可以增加自己特有的方法。
3.当子类的方法重载父类的方法时,方法的前置条件(即方法的形参)要比父类方法的输入参数更宽松。
4.当子类的方法实现父类的抽象方法时,方法的后置条件(即方法的返回值)要比父类更严格。
总之尽量不要重写父类已经实现的方法,可以用接口其它方法绕过去。
3.依赖倒置原则
高层模块不应该依赖底层模块,都应该依赖抽象;抽象不应该依赖细节,细节应该依赖抽象。
总之:多用抽象的接口来描述要做的动作,降低实现这个动作的事务之间的耦合度。(各自拥有各自的接口,不要放在一起使用,降低耦合性)
4.接口隔离原则
客户端不应该依赖它不需要的接口;一个类对另一个类的依赖建立在最小的接口上。
总之就是一个接口尽量完功能的单一,不要让一个接口承担过多的责任。
5.迪米特法则
经查最早是在1987年由美国Northeastern University的Ian Holland提出。一个类尽量封装自己,除了对外提供public方法之外,其它的不对外泄露信息。至于自己的成员变量和参数打交道,不与其它打交道。
6,开闭原则
对扩展开放,修改关闭。
尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化。