单一职责原则(SRP)

单一职责原则(SRP)

介绍

单一职责原则(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("汽车发动");
    }
}

特点

  1. 一个类或方法只负责一个职责,将其职责限制在一个范围内,便于维护和测试;
  2. 通过职责的划分,使得类或方法的代码量减少,避免了代码的冗余;
  3. 使得代码的复用性更强,减少了不必要的依赖,提高了代码的灵活性和可扩展性。

通过遵守单一职责原则,可以提高代码的可读性、可维护性和可测试性,使得代码更加健壮和可靠。同时,它也有助于减少代码的耦合度,提高代码的复用性和可扩展性,使得代码更加易于维护和升级。

注意事项(*重点)

  1. SRP是面向对象设计中的一个重要原则,有助于提高代码的可读性、可维护性和可扩展性。
  2. 一个类应该只有一个职责,不应该有多于一个导致类变更的原因。