1.定义
一个类、接口或方法最好只有一个职责,这样的好处是引起类发生变化的原因会很少,开发新需求时,就会很少去修改这个类,而且职责越单一也越容易被复用。
单一职责原则降低了类的复杂度和变更引起的风险,提高了类的可复用性、可读性以及可维护性。
2.类的代码示例
(1).耦合
public class Bird {
public void mainMoveMode(String name) {
if ("鸵鸟".equals(name)) {
System.out.println(name + "地上走");
} else {
System.out.println(name + "天上飞");
}
}
}
public class Test {
public static void main(String[] args) {
Bird bird = new Bird();
bird.mainMoveMode("鸵鸟");
bird.mainMoveMode("大雁");
}
}
鸵鸟地上走
大雁天上飞
(2).单一职责
public abstract class Bird {
public abstract void mainMoveMode(String name);
}
public class RunBird extends Bird {
@Override
public void mainMoveMode(String name) {
System.out.println(name + "地上走");
}
}
public class FlowBird extends Bird {
public void mainMoveMode(String name) {
System.out.println(name + "天上飞");
}
}
public class Test {
public static void main(String[] args) {
RunBird runBird = new RunBird();
runBird.mainMoveMode("鸵鸟");
FlowBird flowBird = new FlowBird();
flowBird.mainMoveMode("大雁");
}
}
鸵鸟地上走
大雁天上飞
3.接口的代码示例
(1).耦合
public interface ICourse {
void printContent();
void updateContent();
void getOriginalPrice();
void getDisCountPrice();
}
(2).单一职责
public interface ICourse {
}
public interface ICourseContent extends ICourse {
void printContent();
void updateContent();
}
public interface ICoursePrice extends ICourse {
void getOriginalPrice();
void getDisCountPrice();
}