介绍
单一职责原则(Single Responsibility Principle,SRP)是面向对象设计原则之一,其核心思想是一个类只应该有一个单一的职责,即一个类只负责一项功能。这样做可以提高类的可维护性、可读性和可扩展性,避免一个类承担过多的职责导致代码混乱、复杂度高、难以维护的问题。
原则
每个类只负责一个单一的功能
正反案例
反例
一个汽车类包含关于汽车和修理汽车的方法。这样,如果需要修改汽车类中的修理方法,就可能会影响到与汽车有关的方法,导致类变更的原因不止一个。
// 不符合单一职责原则的汽车类
public class Car {
private String brand;
private String color;
private int price;
// 汽车类的方法
public void run() {
System.out.println("汽车发动");
}
// 汽车类的修理方法
public void repair() {
System.out.println("修理汽车");
}
}
正例
一个汽车类应该只包含关于汽车的属性和方法,而不应该包含关于修理汽车的方法。修理汽车应该放在另一个类中,这样汽车类只需要负责描述汽车的属性和行为。
// 汽车类
public class Car {
private String brand;
private String color;
private int price;
// 汽车类的方法
public void run() {
System.out.println("汽车发动");
}
}
特点
- 一个类或方法只负责一个职责,将其职责限制在一个范围内,便于维护和测试;
- 通过职责的划分,使得类或方法的代码量减少,避免了代码的冗余;
- 使得代码的复用性更强,减少了不必要的依赖,提高了代码的灵活性和可扩展性。
通过遵守单一职责原则,可以提高代码的可读性、可维护性和可测试性,使得代码更加健壮和可靠。同时,它也有助于减少代码的耦合度,提高代码的复用性和可扩展性,使得代码更加易于维护和升级。
注意事项(*
重点)
- SRP是面向对象设计中的一个重要原则,有助于提高代码的可读性、可维护性和可扩展性。
- 一个类应该只有一个职责,不应该有多于一个导致类变更的原因。