设计模式七大原则
-
单一职责原则
-
核心
一个类只负责一项职责
-
优点
- 降低类的复杂度
- 提高类的可读性和可维护性
- 降低变更引起的风险
- 如果逻辑比较简单,可以在方法上遵守单一职责,降低代码量
-
实例
-
交通工具
分为轮船,飞机、汽车。每个类实现一个职责
-
DAO类
一个DAO负责一个表的增删改查。
-
-
代码
代码部分参考了尚硅谷韩顺平老师的内容。
/** * @program:design_pattern * @descript:公路 * @author: luyongjian746 * @create: 2020-02-11 */ public class Road { public void run(String vehicle) { System.out.println(vehicle + "在公路上跑"); } }
/** * @program:design_pattern * @descript:天空 * @author: luyongjian746 * @create: 2020-02-11 */ public class Sky { public void run(String vehicle) { System.out.println(vehicle + "在空中飞"); } }
/** * @program:design_pattern * @descript:海 * @author: luyongjian746 * @create: 2020-02-11 */ public class Sea { public void run(String vehicle) { System.out.println(vehicle + "在海中航行"); } }
/** * @program:design_pattern * @descript:测试 * @author: luyongjian746 * @create: 2020-02-11 */ public class Test { public static void main(String[] args) { Road road = new Road(); road.run("汽车"); Sky sky = new Sky(); sky.run("飞机"); Sea sea = new Sea(); sea.run("轮船"); } }
结果:
汽车在公路上跑 飞机在空中飞 轮船在海中航行
-
-
接口隔离原则
-
核心
客户端不应该依赖于他不需要的接口。即一个类对另外一个类的依赖,应该建立在最小的接口上。
将大接口拆解成多个小的接口。
-
优点
-
实例
- 代码
-
-
依赖倒置原则
- 核心
- 高层模块不应该依赖底层模块。二者都应该依赖其抽象。
- 抽象不应该依赖细节,细节应该依赖其抽象。
- 核心为面向接口编程。
- 优点
- 实例
- 代码
- 核心
-
里式替换原则
-
核心
子类继承父类时尽量不要重写父类的方法。
-
优点
-
实例
- 代码
-
-
开闭原则
-
核心
对扩展开放,对修改关闭。用抽象构建框架,用实现扩展细节。
-
优点
-
实例
- 代码
-
-
迪米特法则
-
核心
一个类应该对其他对象保持最小的了解。
如果不是直接朋友,在一个方法中出现了其他类的局部变量,就违反了迪米特法则。
直接朋友是指,某方法的参数,返回值所使用的类,则此类为该方法所属类的直接朋友。
-
优点
-
实例
- 代码
-
-
合成复用原则
-
核心
尽量使用合成或复用代替继承。
合成:A类作为成员变量或者参数的形式出现在B类
复用:A类以new A()的方式出现在B类中
-
优点
-
实例
- 代码
-