前言
单一职责是只尽量是一个类或一个方法只是负责一个职责,从而实现降低耦合的目的,接下来我们就用实际案例来解释
类的单一职责
首先我们有一个课程类如下
public class Course {
public void study(String courseName) {
if("直播课".equals(courseName)) {
System.out.println("在线观看,不可倒退");
} else if("录播课".equals(courseName)) {
System.out.println("观看历史,可以倒退");
}
}
}
这里课程实现了针对不同的课程名实现不同的观看体验,但是如果对直播课程或者录播课程进行修改,因为两个混合在一起,所有修改逻辑必然会有所影响,带来不可控的风险,所以此时可以将两个分别进行开发。
LiveCourse:
public class LiveCourse {
public void study() {
System.out.println("观看历史,可以倒退");
}
}
ReplayCourse
public class ReplayCourse {
public void study() {
System.out.println("在线观看,不可倒退");
}
}
这里我们将直播课和录播课都提取出来分别开发,这样就实现了解耦
方法的单一职责
首先我们有一个方法如下
public void modifyUserInfo(String userName,String address) {
this.userName=userName;
this.address=address;
}
这里的方法承担了多个职责,既可以更改姓名,也可以更改地址
我们可以把这个方法进行拆分
public void modifyUserName(String userName) {
this.userName=userName;
}
public void modifyAddress(String address) {
this.address=address;
}