单一职责原则(SRP:Single Reposibility Principle)
定义:一个类或者模块只负责完成一个职责。
里氏替换原则(LSP:Liskov Substitution Principle)
定义:所有使用父类的地方可以使用子类的对象,子类可以扩展父类的功能,但是不能替换父类的功能。如果需要替换父类功能,建议——多用组合,少用继承。
含义:
1、里氏替换原则是针对继承而言的,如果继承是为了实现代码重用,也就是为了共享方法,那么共享的父类方法就应该保持不变,不能被子类重新定义。子类只能通过新添加方法来扩展功能,父类和子类都可以实例化,而子类继承的方法和父类是一样的,父类调用方法的地方,子类也可以调用同一个继承得来的,逻辑和父类一致的方法,这时用子类对象将父类对象替换掉时,当然逻辑一致,相安无事。
2、如果继承的目的是为了多态,而多态的前提就是子类覆盖并重新定义父类的方法,为了符合LSP,我们应该将父类定义为抽象类,并定义抽象方法,让子类重新定义这些方法,当不存在子类替换父类实例(根本不存在父类实例了)时逻辑不一致的可能。
依赖倒置原则(DIP:Dependence Inversion Principle)
定义:下层模块引入上层模块的依赖,改变原有自上而下的依赖方向。
接口隔离原则
定义:建立单一接口,不要建立臃肿庞大的接口。接口尽量细化,同时接口中的方法尽量少。
含义:
1、接口要尽量小
- 不要违反单一职责原则。
- 要适度的小,要适度。
2、接口要高内聚
- 提高接口、类、模块的处理能力,减少对外的交互。
3、定制服务
- 通过对高质量接口的组装,实现服务的定制化。
迪米特法则/最少知识原则(LoD:Law of Demeter)
一个类应该对自己需要耦合或调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂,那是你的事儿,和我没关系,我就知道你提供的这么多pulic方法,我就调用这么多,其他的我一概不关系。
开闭原则
定义:类、方法、模块应该对扩展开放,对修改关闭。
含义:添加一个功能应该是在已有的代码基础上进行扩展,而不是修改已有的代码。
END
标签:六大,定义,原则,子类,接口,设计,父类,方法 From: https://www.cnblogs.com/houhuilinblogs/p/18044811