/oop5

Primary LanguageJava

Взять реализованный код в рамках семинара 4 и продемонстрировать применение принципов, усвоенных на семинаре.

Нужно в проекте прокомментировать участки кода, которые рефакторим, какой принцип применяем и почему.

1 S - Single Responsibility Principle - принцип единственной ответственности. Каждый класс должен иметь только одну зону ответственности.

2 O - Open closed Principle - принцип открытости-закрытости. Классы должны быть открыты для расширения, но закрыты для изменения.

3 L - Liskov substitution Principle - принцип подстановки Барбары Лисков. Должна быть возможность вместо базового (родительского) типа (класса) подставить любой его подтип (класс-наследник), при этом работа программы не должна измениться.

4 I - Interface Segregation Principle - принцип разделения интерфейсов. Данный принцип обозначает, что не нужно заставлять клиента (класс) реализовывать интерфейс, который не имеет к нему отношения.

5 D - Dependency Inversion Principle - принцип инверсии зависимостей. Модули верхнего уровня не должны зависеть от модулей нижнего уровня. И те, и другие должны зависеть от абстракции. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.

Формат сдачи: ссылка на гитхаб проект

  1. Вынес из Teacher.java comparator в TeacherComparator.java (Принцип единой ответственности)
  2. Вынес распечатку групп в отдельный view
  3. Первый принцип вроде везде выполняется.
  4. Второй принцип был нарушен.
  5. Третий принцип выполняется с наследниками.
  6. Четвёртый тоже вроде везде выполнен
  7. Пятый принцип не нашёл где применить.