Die Ausdrucksobjekte werden rekursiv in eine zusammengesetzte/baumstrukturbezeichnete Struktur umgewandelt, die als abstrakte Syntaxstruktur bezeichnet wird (siehe Zusammengesetztes Muster). Das Interpretermuster beschreibt nicht, wie eine abstrakte Syntaxstruktur erstellt wird. Dies kann entweder manuell von einem Client oder automatisch von einem Parser erfolgen. Die Smart Client Software Factory von Microsoft enthält einen Entity Translator-Dienst im Infrastructure.Library-Projekt, mit dem Sie benutzerdefinierte Übersetzer schreiben und diese dann beim Entity Translator-Dienst registrieren können. Es bietet zwei Basisklassen: `EntityMapperTranslator` und `BaseTranslator`. Die BaseTranslator-Klasse implementiert den `IEntityTranslator`. In SpEL ist Spring es ExpressionParser eine Schnittstelle, die Ausdruckszeichenfolgen in kompilierte Ausdrücke analysiert, die ausgewertet werden können. Die Implementierung, z. B. SpelExpressionParser und TemplateAwareExpressionParser, unterstützt sowohl das Analysieren von Standardausdruckszeichenfolgen als auch Vorlagen. Die ExpressionParser-Implementierungen sind für das Analysieren eines Eingabeausdrucks und die Rückgabe von Expression-Instanzen wie CompositeStringExpression, LiteralExpression und SpelExpression verantwortlich. Spring stellt auch die EvaluationContext-Schnittstelle mit den Implementierungen MethodBasedEvaluationContext und StandardEvaluationContext-Klassen bereit, um die Kontextkomponente des Interpretermusters darzustellen. In diesem Artikel werde ich mit Ihnen das Collector-, Translator- und Formatter-Muster einführen.

Bevor wir tief in das Muster eintauchen, gehe ich davon aus, dass die Zielgruppe einige Erfahrung in der Implementierung von Standard-Designmustern hat. Haben Sie auch ein gründliches Verständnis von objektorientierten Prinzipien und Praktiken. Das folgende Backus-Naur-Formularbeispiel veranschaulicht das Interpretermuster. Die Grammatik ausdrücke, die durch das Interpretermuster definiert werden, können sein: Unten ist das Klassendiagramm der Translator-Klassen. Hinweis: Die folgenden Klassen sind Teil der Beispielanwendung, der Übersetzer ist optional und hängt ausschließlich von der Domäne ab, in der Sie arbeiten. Lassen Sie uns versuchen, die Notwendigkeit oder Notwendigkeit zu verstehen, den Sammler, Übersetzer und Verleger zu entkoppeln. Wir werden die folgenden Dinge erreichen. In diesem Beitrag werde ich das Entity Translator-Muster behandeln und eine nützliche Basisklasse für die Implementierung dieses Musters in Ihrer Anwendung bereitstellen.

Zusätzlich zu den proprietären Datenmodellen und Datenformaten, die in den verschiedenen Anwendungen integriert sind, interagieren Integrationslösungen oft mit standardisierten Datenformaten, die unabhängig von bestimmten Anwendungen sein wollen. Es gibt eine Reihe von Konsortien und Normungsgremien, die diese Protokolle definieren, wie RosettaNet, ebXML, OAGIS und viele andere, branchenspezifische Konsortien.