понедельник, 28 декабря 2015 г.

Глава 6. Классы(2 часть)

Причины создания классов:

  • Моделирование объектов доменной области
  • Моделирование абстрактных объектов - их не существует в реальном мире, но они абстрагируют другие объекты реального мира. Например класс Shape создаёт абстракцию для таких фигур как Circle и Square.
  • Снижение сложности - за счёт сокрытия информации, разбиения её на удобоваримые слои.
  • Изоляция сложности - локализуем возможные проблемы, которые будут возникать из-за высокой сложности.
  • Сокрытие деталей реализации - так её легко изменить
  • Ограничение влияния изменений
  • Сокрытие глобальных данных
  • Упрощение передачи параметров в методы - если в несколько методов передаётся один и тот же параметр, то возможно эти методы должны быть объединены в один класс, который будет владеть этим широко используемым полем
  • Создание центральных точек управления
  • Облегчение повторного использования кода
  • Планирование создания семейства программ - часть классов остаётся такой же, а часть переписываются под каждое конкретное приложение
  • Упаковка родственных операций - например набор тригонометрических функций, методов работы со строками
  • Различные виды рефакторинга
Классы, которых следует избегать:

  • God-object - нарушает single responsibility principle как бы
  • Нерелевантные классы - если класс имеет только данные, но не формы поведения, возможно его свойства стоит просто раздербанить по другим классам
  • Классы, имена которых напоминают глаголы - они обычно содержат только поведение, но не данные. Возможно лучше просто сделать их методами какого-нибудь другого класса
Также не следует пренебрегать более высоким уровнем агрегации - пакетами, модулями, областями имён и т.д.

Комментариев нет:

Отправить комментарий