У меня есть несколько клиентских классов A
, B
и C
, которым необходимо использовать операцию op()
, которая зависит от типа вызывающего объекта и определяется другим классом D
.
Есть несколько решений:
D
предоставляет разные методы для каждого клиента, но ответственность за выбор правильной реализации лежит на клиенте:- перегружая имя метода в
D
и передавая ссылку на себя клиента для управления привязкой: - введение шаблона стратегии.
- ...
Есть ли хорошая практика, почему я должен избегать второго решения?
op()
находится в отдельном классе, а не только в трех предыдущих классах? - person markspace   schedule 15.09.2016