【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
六大设计原则
- 开闭原则
简述:对修改关闭,对扩展开放
解读:需求变更时,尽量不要修改已有的代码。
- 单一职责原则
简述:一个类不应承担过多的职责,或者说,就一个类而言,应该只有一个引起它变化的原因
解读:一个类不能承担过多的功能,只专心一件事,并把这件事做好。
优点:
- 降低类的复杂度
- 提高类的可读性
- 降低变更引起的风险
小结:变更是必然的,如果单一职责遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
- 里氏替换原则(继承关系)
简述:所有引用父类(基类)的地方,必须能透明地使用其子类的对象。
解读:继承关系中,能用父类的地方,那么其任何子类也可以被正常调用,所以子类尽量不要修改父类的方法
- 依赖倒转原则(接口编程)
简述:抽象不应该依赖于细节,细节当依赖于抽象。换言之,要针对接口编程,而非针对实现编程。
解读:上述中抽象可简单理解为接口,细节就是接口的实现类。通过抽象或接口实现类与类之间的依赖关系
- 接口隔离(接口隔离)
简述:使用多个专门的接口,不使用单一的总接口。建立单一接口,不要建立庞大/臃肿的接口。
解读:定义一个接口时不要定义的大而广,而是把他们分割成一些更细小的接口。一般不满足单一职责原则都不满足接口隔离原则。
小结:接口隔离原则核心思想就是细化接口,提高程序的灵活性。接口不能太小,如果太小会导致系统中接口泛滥,不利于维护。
- 迪米特法则
简述:一个实体尽可能少的与另一个实体发生相互作用。
解读:其他定义:不要和“陌生人”说话、只与你的朋友通信等。
- 一个类只与它的朋友类交互 所谓一个的朋友,指的是:
- 当前对象本身(this)
- 以参数形式传入到当前对象方法中的对象,或者返回的方法返回的对象
- 当前对象的成员对象
小结:迪米特的目的就是降低系统的耦合度,使类与类之间保持松散的耦合关系。
-
总结
-
开闭原则,为总大纲:要对扩展开发,对修改关闭
-
单一职责,告诉我们实现类的功能不要太多
-
里氏替换,告诉我们不要破坏类的继承关系
-
依赖倒置,告诉我们要面向接口编程
-
接口隔离,告诉我们在设计接口时要精简单一
-
迪米特法则,告诉我们降低耦合度
模式分类
- 创建型,主要处理对象的创建,实例化对象
- 结构型,处理类或对象的组合
- 行为型,描述类或者对象怎样交换、职责分配
来源:oschina
链接:https://my.oschina.net/u/1251536/blog/1595837