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

Альтернативные классы с разными интерфейсами

(Alternative Classes with Different Interfaces)

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

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