Тема  9. Введение в ОО дизайн

Содержание

  1. SOLID
    1. SRP: Принцип единственной ответственности
    2. OCP: Принцип открытости/закрытости
    3. LSP: Принцип подстановки Лисков
    4. ISP: Принцип разделения интерфейса
    5. DIP: Принцип инверсии зависимостей
  2. Квадрат и прямоугольник
    1. Постановка задачи
    2. Источник проблем
    3. Возможные решения
      1. Отказ от изменений
        1. Возврат нового значения
        2. Возврат флага
        3. Исключения
      2. Отказ от наследования
        1. Полный
        2. Выделение общего базового класса
      3. Дополнительные действия
      4. Выделение модифицируемых сущностей
      5. Отказ от квадратов
  3. Равенство
    1. Свойства равенства
    2. Метод equals
    3. Метод hashCode
    4. Взаимодействие с наследованием
      1. Наиваная реализация
      2. Использование сравнения предка
      3. Сегрегация сравнения

Слайды

HTML

Экзаменационные вопросы

  1. Принципы SOLID
  2. Проблема квадрата и прямоугольника
  3. Равенство объектов

Практические навыки

  1. Умение определять необходимость наследования
  2. Умение реализовывать корректное сравнение объектов на равенство

Библиография

  1. Robert C. M. Design Principles and Design Patterns
  2. Wikipedia Wikipedia: SOLID
  3. Robert C. M. The Liskov Substitution Principle
  4. Wikipedia Circle-Ellipse problem
  5. Odersky M., Spoon L., Venners B. How to Write an Equality Method in Java