Декоратор против интерпретатора
Я недавно выучил образец интерпретатора. Я обнаружил некоторые сходства между декоратором и переводчиком. У них похожая структура.
Я смотрю в этом случае: одно нетерминальное поведение и одно терминальное поведение в интерпретаторе. Кажется, очень похоже на декоратор. Может быть нетерминальное поведение, вызывающее то же нетерминальное поведение и затем вызывающее терминальное поведение. Это выглядит очень похоже на применение декоратора над тем же декоратором над объектом.
Является ли декоратор специальным случаем интерпретатора?
1 ответ
Шаблон Decorator в первую очередь предназначен для украшения существующего объекта и добавления дополнительных возможностей к декорированному объекту, например, BufferedReader и FilerReader: где FileReader читает данные символ за символом, а BufferedReader читает данные построчно
Шаблон интерпретатора используется для интерпретации языка или выражения.
И то, и другое полностью отличается, поскольку интерпретатор интерпретирует выражение, а декоратор расширяет существующий объект, а не интерпретирует выражение.... обычно после интерпретации может произойти декорирование....