标签:java 出现 version 继承 组合 ted 缩小 strong 成员变量
【Single Responsibility Principle
】
保证类的职责要单一。
应该有且仅有一个原因引起类的变更。
好处
:
【Liskov Substitution Principle
】
要求不要破坏继承体系。
定义
:所有引用基类的地方必须能透明地使用其子类的对象。
只要父类能出现的地方我子类就可以出现,而且调用子类还不产生任何的错误或异常,调用者可能根本就不需要知道是父类还是子类。但是反过来就不成了,有子类出现的地方,父类未必就能适应。
里氏替换法则包含了四层意思
:
子类必须完全的实现父类的方法。
在类中调用其他类是务必要使用父类或接口,如果不能使用 父类或接口,则说明类的设计已经违背了LSP
原则。
子类可以有自己的个性。
覆盖或实现父类的方法时输入参数可以被放大。
子类中方法的前置条件必须与超类中被覆盖的方法的前置条件相同或 者更宽松。
覆盖或实现父类的方法是输出结果可以被缩小。
【Dependence Inversion Principle
】
面向接口去编程。
【Interface Segregation Principle
】
设计接口的时候,要做到精简单一。
接口尽量要小。
接口要高内聚。
定制服务。
接口设计是有限度的。
衡量规则
:
一个接口只服务于一个子模块或者业务逻辑。
通过业务逻辑压缩接口中的 public 方法。
已经被污染了的接口,尽量去修改,若变更的风险较大,则采用适配器模式进行转化处理。
了解环境,拒绝盲从。
**【Low Of Demeter
】 **
降低耦合,所有的都要解耦。
迪米 特法则就要求类“小气”一点,尽量不要对外公布太多的public方法和非静态的public变量,尽量内敛,多使用private,package-private、protected等访问权限。
成员朋友类
:出现在成员变量、方法的输入输出参数中的类Serializable
。**【Open Close Principle
】 **
对扩展开放,对修改关闭。
多用组合,少用继承。
原因:
- 继承的时候会破坏封装
- 组合的好处:类似于装饰器模式,把装饰定义在子类或者额外的实现类里面,通过调用不同的方法、动作,来去装饰。
如果是多继承,子类调用父类的名字相同的变量和方法的时候,会出现混淆,就会不知道具体调用的哪个父类的方法了,所以必须要单继承。
标签:java 出现 version 继承 组合 ted 缩小 strong 成员变量
原文地址:https://www.cnblogs.com/lmh15054109/p/13848547.html