专业编程基础技术教程

网站首页 > 基础教程 正文

一文让你读懂“设计模式七大原则之——单一职责原则”

ccvgpt 2025-05-03 12:41:28 基础教程 8 ℃

上一个轮的加班刚刚完结还没一周,领导就跑来告诉我:“小菜鸟,周末跟加班才更般配哟!”可怜的孩子又迎来了新的加急任务,美好的加班生活又要开始喽。

不!这不是菜鸟想要的生活,菜鸟要反抗,菜鸟决定了,要辞职。这不偷偷拿出手机登录各大招聘网站进行了浏览,突然发现怎么招聘还要求会设计模式呢?为此赶紧拿出那早已沾满灰尘的资料进行恶补。哎!在这之前还是扶我起来加班吧。

一文让你读懂“设计模式七大原则之——单一职责原则”

以上内容纯属虚构(除了加班),如有雷同请看下文。

今天让我们一起学习一下设计模式七大原则之——单一职责原则。

基本概念

拿java的类来说单一职责原则,就是一个类只负责一项职责,也可以称之为一项功能。

单一职责带来的好处

1、一个类只负责一项职责,最直接的好处就是降低类的复杂度。

2、职责的单一会提高类的可读性,提高程序的可维护性,降低后期维护成本。

3、因其只负责一项功能,所以当代码变动时不会影响到到其他功能,从而大大降低变更引起的风险。

理论知识就讲到这里,下面让我们看一段示例代码,从而加深一下对单一职责原则的理解。

代码时间

违反了单一职责原则的示例代码:

public class SingleResponsibilityDemo1 {

public static void main(String[] args) {

Eat eat = new Eat();

eat.eat("老虎");

eat.eat("山羊");

}

}

/**

* 吃饭类

*/

class Eat {


public void eat(String animalName) {

if ("老虎".equals(animalName)) {

System.out.println(animalName + ",在狼吞虎咽的吃肉!");

} else if ("山羊".equals(animalName)) {

System.out.println(animalName + ",在细嚼慢咽的吃草!");

}

}

}

注:吃肉和吃草是两种行为,该类却写在一起了,典型的违反了单一职责原则。并且这样设计在之后需要添加吃其它食物的功能时需要再增加一个else if,当功能增多并且逻辑复杂时,会造成代码非常臃肿,难以理解和维护。

类级别遵守单一职责原则的示例代码:

public class SingleResponsibilityDemo2 {

public static void main(String[] args) {

EatMeat eatMeat = new EatMeat();

eatMeat.eatMeat("老虎");

EatGrass eatGrass = new EatGrass();

eatGrass.eatGrass("山羊");

}

}

// 吃肉类

class EatMeat {

public void eatMeat(String animalName) {

System.out.println(animalName + ",在狼吞虎咽的吃肉!");

}

}

// 吃草类

class EatGrass {

public void eatGrass(String animalName) {

System.out.println(animalName + ",在细嚼慢咽的吃草!");

}

}

在方法级别遵守单一职责原则的示例代码:

public class SingleResponsibilityDemo3 {

public static void main(String[] args) {

Eat eat = new Eat();

eat.eatMeat("老虎");

eat.eatGrass("山羊");

}

}

class Eat {

public void eatMeat(String animalName) {

System.out.println(animalName + ",在狼吞虎咽的吃肉!");

}

public void eatGrass(String animalName) {

System.out.println(animalName + ",在细嚼慢咽的吃草!");

}

}

个人意见

1、单一职责虽好,但也不可以生搬硬套,不然会引起类的增多,添加额外的维护成本。2、当代码的逻辑足够简单时,我们可以在代码级别违反单一职责原则;3、当类中的方法数量少,并且业务逻辑不是特别复杂时,可以在类级别上违背单一职责原则,下沉至方法级别保持即可。4、我们要根据需求和实际情况来灵活运用单一职责原则。

总体来说就是需要灵活运用单一职责原则,结合实际情况考虑是在类级别遵守还是在方法级别遵守。

今天的分享就到这里了,感觉文章写得不错的记得点赞加关注呦!

Tags:

最近发表
标签列表