Grasp

Что это

Grasp(general responsibility assignment software patterns) - шаблоны ООП для решения общих задач по назначению ответственностей классам и объектам.

Описание

  1. Information Expert - ответственность должна быть назначена тому, кто владеет максимумом необходимой информации для исполнения. Информация должна обрабатываться там, где она содержится.
    Если POJO класс имеет все необходимые данные для задачи, он сам должен ее выполнять. Класс Order - getSum().
  2. Creator - создавать экземпляры класса должен класс, которому они нужны. Не класс клиент.
  3. Controller - класс отвечающий на запросы от пользователя. Может иметь: логирование, аутентификацию, авторизацию, кеширование. Контроллер - объект который превращает многопоточный код в однопоточный.
  4. Low Coupling - количество зависимостей, должно быть минимальным.
  5. High Cohesion(single responsibility) - классы должны содержать связанную бизнес — логику. Если возвести "Low Coupling" в абсолют, можно прийти к тому, чтобы разместить всю функциональность в одном единственном классе. Solid - Single responsibility.
  6. Polymorphism - один интерфейс - много реализаций.
  7. Pure Fabrication - Facade of GoF.
  8. Indirection - слабое зацепление между элементами системы, обеспечивается назначением промежуточного объекта их посредником. Mediator of GoF.
  9. Protected Variations - изменение одних элементов системы не должно влиять на другие. Dependency inversion of Solid.