В чем разница между шаблоном интерпретатора и шаблоном посетителя?

У меня проблемы с пониманием этих двух шаблонов проектирования.

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

Благодарю.

1 ответ

Решение

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

В посетителе драйвер поведения основан на том, от какого типа объекта выполняется операция.

Шаблон интерпретатора может использоваться для проблем предметной области, которые могут быть выражены простым языком / предложениями. Тогда проблемы могут быть решены путем интерпретации этих предложений. Таким образом, мы получаем ввод, мы можем понять (интерпретировать) его и затем реализовать определенное поведение, основанное на интерпретации / категоризации ввода.

В интерпретаторе драйвер поведения основан на том, что представляет собой ввод, интерпретация / категоризация ввода.

Другие вопросы по тегам