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

Извлечение суперкласса (Extract Superclass)

Есть два класса с похожими особенностями.

Создать суперкласс и переместить в него общие особенности.

 Альтернатива этому методу – Извлечение класса. Разница в делегировании и наследовании. Наследование надо использовать, когда классы обладают как одинаковым поведением, так и одинаковым интерфейсом.

Если выбор будет сделан неправильно, далее всегда можно воспользоваться Заменой наследования делегированием.