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

Введение локального расширения (Introduce Local Extension)

Серверный класс нуждается в нескольких дополнительных методах, но изменять этот класс нельзя.

Создать новый класс, включающий эти методы. Сделать этот класс подклассом данного либо агрегирующим данный класс.

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