Абстрактный узор

Смотрите также

Примеры реализации: