设计模式原则整理 - 单一职责原则(Single Responsibility Principle)

原理

单一职责原则(Single Responsibility Principle,SRP),是面向对象设计中的一条基础原则。它指出:一个类或模块应该只有一个引起它变化的原因,也就是说,一个类或模块只应该有一个职责。这样可以将系统的各个部分分割开来,使得每个部分都具有清晰的职责,并且易于维护和修改。

示例

为了更好的说明SRP,我们以C++为例来说明。假设我们有一个名为 Student 的类,它负责管理和获取有关学生的信息,但实际上它还有其他职责,例如计算成绩和显示学生详情,这就违反了 SRP 的原则。
为了遵循 SRP,我们应该将 Student 类分解为更小、更专业的类。例如,我们可以创建一个 StudentInfo 类,它负责存储学生信息,一个 GradeCalculator 类,它负责计算学生成绩,以及一个 StudentDisplay 类,它负责显示学生详情。

#include 
#include 
using namespace std;
 class StudentInfo {
public:
    void setStudentName(string name) {
        studentName = name;
    }
    string getStudentName() {
        return studentName;
    }
    void setStudentID(int id) {
        studentID = id;
    }
    int getStudentID() {
        return studentID;
    }
private:
    string studentName;
    int studentID;
};
class GradeCalculator {
public:
    double calculateGrade(double* grades, int numGrades) {
        // 计算成绩的实现逻辑
    }
};
class StudentDisplay {
public:
    void displayStudentDetails(StudentInfo info, double* grades, int numGrades) {
        // 显示学生信息的实现逻辑
    }
};
int main() {
    StudentInfo info;
    GradeCalculator calc;
    StudentDisplay display;
    double grades[] = {90.5, 85.2, 95.0};
    int numGrades = 3;
     info.setStudentName("张三");
    info.setStudentID(123);
    double averageGrade = calc.calculateGrade(grades, numGrades);
    display.displayStudentDetails(info, grades, numGrades);
    return 0;
}

示例说明

在这个示例中,我们创建了三个独立的类来处理不同的职责。 StudentInfo 类负责存储学生信息, GradeCalculator 类负责计算学生成绩, StudentDisplay 类负责显示学生详情。
通过遵循 SRP,我们创建了一个更易于维护和组织的代码结构,可以更加方便地修改和扩展系统。

Note:
Code 与理论 皆来自AI生成, 只是整理和传播;

你可能感兴趣的:(重新起步,设计模式,c++,开发语言,单一职责原则)