- 定义:不要存在多于一个导致类变更的原因
- 解释:一个类/接口/方法只负责一项职责
- 优点:降低类的复杂度,提高可读性,降低变更引起的风险
代码示例:鸟类移动的方法,大部分用翅膀飞,实现如下,Bird这个类负责输出翅膀和脚走的方法,如果此时来了个企鹅,则moveMode中还要加判断,影响了原有的逻辑判断,不符合单一职责原则
Bird类
public class Bird {
public void moveMode(String birdName){
if(birdName.equals("鸵鸟")){
System.out.println(birdName+"用脚走路");
}else {
System.out.println(birdName+"用翅膀飞");
}
}
}
Test类
public class Test {
public static void main(String[] args) {
Bird bird=new Bird();
bird.moveMode("大雁");
bird.moveMode("鸵鸟");
}
}
改造如下,用WalkBird和FlyBird来实现
public class FlyBird {
public void moveMode(String birdName){
System.out.println(birdName+"用翅膀飞");
}
}
public class WalkBird {
public void moveMode(String birdName){
System.out.println(birdName+"用脚走");
}
}
在Test中的使用
public class Test {
public static void main(String[] args) {
// Bird bird=new Bird();
// bird.moveMode("大雁");
// bird.moveMode("鸵鸟");
FlyBird flyBird=new FlyBird();
flyBird.moveMode("大雁");
}
}