В чем разница между шаблоном интерпретатора и шаблоном посетителя? - PullRequest
0 голосов
/ 18 марта 2019

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

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

Спасибо.

1 Ответ

2 голосов
/ 19 марта 2019

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

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

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

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

...