Скажем, в моей программе у меня есть класс, называемый Robot
, который наследуется от какого-то другого класса.Применить шаблон посетителя как механизм расширения для одного класса
До сих пор у меня есть методы внутри Robot
как addPart
или getCost
. Теперь меня попросят добавить к нему новый модуль функциональности (несколько методов, которые используют его части), но они явно просят добавить новый модуль, практически не влияя на текущий класс.
Я думал, что Visitor
может решить эту проблему, но дело в том, что я не буду применять шаблон к иерархии. Это правильная вещь? (Как вы можете видеть мой Robot
является частью композиционного материала)
На самом деле, я думаю, что сейчас у меня есть проблема с этим подходом. Каждая функция Visit должна возвращать что-то другое, поэтому я не знаю, является ли этот шаблон более жизнеспособным для этого. – user2313248
@ user2313248 Ну, вы можете изменить подпись Visit, чтобы вернуть общий объект Result. Результат может обернуть каждый из разных типов возврата. – Josh