学会设计模式,你就可以像拥有魔法一样,在开发过程中解决一些复杂的问题。设计模式是由经验丰富的开发者们(GoF)凝聚出来的最佳实践,可以提高代码的可读性、可维护性和可重用性,从而让我们的开发效率更高。通过不断的练习和实践,掌握其中的奥妙,选择合适的设计模式,能为我们的项目增加一丝神奇的魔力。
文章目录
- 定义
- 例子
- 违背单一原则的例子
- 单一原则示例
- 测试
- 测试结果
- 优点
定义
修改一个类的原因只能有一个,即一个类只负责一项职责。
例子
输出交通工具的驱动能源
违背单一原则的例子
如果“混动汽车”的概念还没出现之前,如下写是没啥问题的
public class Power {
public void power(String transportation) {
if (transportation.equals("电动车")) {
System.out.println(transportation + "是电力驱动的");
} else {
System.out.println(transportation + "是石油驱动的");
}
}
}
但是随着近几年“混动汽车”出现在大众的视线中,我们要修改甚至增加 if 的逻辑,就有可能引起石油驱动部分业务报错。而且,石油驱动的,又可以分为 汽油和柴油 驱动,如果类似这种的逻辑日益复杂起来,我们就有可能在修改一个需求的时候导致其他部分的错误
单一原则示例
电力驱动
public class ElectricPower {
public void power(String transportation){
System.out.println(transportation+"是电力驱动的");
}
}
石油驱动
public class OilPower {
public void power(String transportation){
System.out.println(transportation+"是石油驱动的");
}
}
我们为每一种能源创建一个类,每一个类中都通过power方法来表示驱动能源。当有新的能源汽车出现,就无需再修改原来的方法了。我们只需要新增能源类并通过power方法来表示驱动能源
测试
public class Test {
public static void main(String[] args) {
ElectricPower electricPower = new ElectricPower();
electricPower.power("电动车");
OilPower oilPower = new OilPower();
oilPower.power("摩托车");
}
}
测试结果
电动车是电力驱动的
摩托车是石油驱动的
优点
1、可以降低类的复杂度,一个类只负责一项职责,其逻辑肯定要比负责多项职责简单的多;
2、提高类的可读性,提高系统的可维护性;
3、变更引起的风险降低,变更是必然的,如果单一职责原则遵守的好,当修改一个功能时,可以显著降低对其他功能的影响。
文章后期会持续优化,如果觉得小名的文章帮助到了您,请关注小名,支持一下小名😄,给小名的文章点赞👍、评论✍、收藏🤞谢谢大家啦~♥♥♥
编码魔法师系列文章,会收录在小名的【设计模式】专栏中,希望大家可以持续关注🎉