Обзор темы [Рефакторинг кода]

Промежуточный сервер [Стрелочник]

(Middle Man)

Одно из главных преимуществ объектов – инкапсуляция – запрятывание внутренних деталей от остального мира. Инкапсуляция идет рука об руку с делегированием.

Вы спрашиваете у воротилы бизнеса, когда он свободен, чтобы одолжить у него денег. Он делегирует этот запрос к своему ежедневнику, либо к электронной записной книге, либо к секретарю, и узнает о своем свободном времени. Вам нет надобности знать, кто или что хранит информацию об этом. Все просто и удобно.

Однако, все может зайти слишком далеко. Бывают классы, у которых большинство методов состоят только из вызова метода другого класса. Это значит, что пришло время использовать Избавление от промежуточного сервера и обращаться напрямую к объекту, который реально знает, что происходит. Можно воспользоваться также Встраиванием метода, встроив делегирующий метод в тела вызывающих его методов. Если имеет место добавочное поведение, поможет Замена делегирования наследованием для описания промежуточного сервера как подкласса того класса, который он расширяет.