Замена делегирования наследованием.
Класс содержит множество простых делегирующих методов ко всем методам другого класса.
Сделайте класс наследником делегата, после чего делегирующие методы потеряют смысл.
##Example


##Why Refactor
Делегирование является более гибким подходом, чем наследование, так как позволяет изменять поведение класса на лету, заменяя объект к которому происходит делегирование. Тем не менее, применение делегирования перестаёт быть выгодным, если вы делегируете действия только одному классу, причём всем его публичным методам.
Если в этом случае заменить делегирование наследованием, вы избавите класс от множества делегирующих методов, а себя от необходимости создавать их для каждого нового метода класса-делегата.
##Benefits
- Уменьшает количество кода. Вам больше не нужны все эти делегирующие методы.
##How to Refactor
-
Сделайте класс подклассом класса-делегата.
-
В поле, содержащее ссылку на объект-делегат, поставьте текущий объект.
-
Один за другим удаляйте методы с простым делегированием. Если у них отличались названия, используйте переименование метода чтобы привести все методы к одному названию.
-
Замените все обращения к полю-делегату обращениями к текущему объекту.
-
Удалите поле-делегат.