В чем разница между шаблоном интерпретатора и шаблоном посетителя?
У меня проблемы с пониманием этих двух шаблонов проектирования.
Можете ли вы дать мне контекстную информацию или пример, чтобы я мог получить четкое представление и иметь возможность отобразить разницу между ними двумя.
Благодарю.
1 ответ
Шаблон посетителя позволяет добавлять функциональность к классам, не изменяя их. Вы сохраняете в одном месте / классе один и тот же тип поведения для разных типов объектов, в то же время (потенциально) имея разную реализацию для каждого типа. Вы можете расширить или изменить поведение для нескольких типов объектов, работая с одним классом (посетителем). Также полезно, когда вы хотите расширить поведение классов, которые не находятся под вашим контролем, без переноса или расширения их.
В посетителе драйвер поведения основан на том, от какого типа объекта выполняется операция.
Шаблон интерпретатора может использоваться для проблем предметной области, которые могут быть выражены простым языком / предложениями. Тогда проблемы могут быть решены путем интерпретации этих предложений. Таким образом, мы получаем ввод, мы можем понять (интерпретировать) его и затем реализовать определенное поведение, основанное на интерпретации / категоризации ввода.
В интерпретаторе драйвер поведения основан на том, что представляет собой ввод, интерпретация / категоризация ввода.