Princip jediné odpovědnosti v TypeScriptu

Každá třída v našem kódu by měla být zodpovědná pouze za jednu část aplikace. Dodržováním tohoto principu snižujeme složitost našeho kódu.

Pokud je třída zodpovědná za více částí naší aplikace, bude se muset často měnit. Změna jedné části třídy proto zvyšuje riziko rozbití ostatních jejích částí. Řešením je rozdělit jej do více tříd, z nichž každá má jednu odpovědnost.

V následujícím špatném příkladu můžeme vidět, jak Student třída má dvě povinnosti:správu dat studentů a dat kurzu.

class Student {
  id: number;
  name: string;
  courseId: number;
  courseName: string;
  courseSubjects: string[];

  // constructor

  getCourseSubjects(): string {
    return this.courseSubjects.join(", ");
  }
}

Podle principu jednotné odpovědnosti to můžeme zlepšit přesunem dat kurzu do vlastní třídy.

class Student {
  id: number;
  name: string;
  course: Course;

  // constructor
}

class Course {
  id: number;
  name: string;
  subjects: string[];

  // constructor

  getCourseSubjects(): string {
    return this.subjects.join(", ");
  }
}