Av: NN (abcde123) Vad: Agent-baserad återkoppling Varför: Syftet med mönstret är att kunna ge användaren/författaren återkoppling och stöd i arbetet med en text. Hur: Komponenten Gem implementerar interfacet TextAnalyzer och instansieras genom ett anrop till lämplig konstruktor. När huvudkomponenten är skapad kan den läggas till i valfri JContainer. För att kontrollera beteenden hos komponenten/agenten finnas det två huvud-interface som utvecklaren kan jobba med AnalyzableText: Ger stöd för utvecklaren att jobba med olika komponenter som tillhandahåller text. Med en enkel adapter klass som implementerar interfacet kan programmeraren använda sig av godtycklig textmassa. AnalyzableDocumentAdapter är en adapter som kan använda sig av javax.swing.text.Document typen, vilket kan tillhandahållas av de flesta swing komponenter, denna tillhandahålls av komponenten. TextType: Ett interface som styr vilken typ av text och hur agenten ska agera vida olika triggers för den Text-typen. En agent kan agera på flera olika text-typer för varje AnalyzableText. För demonstrations syfte två text-typer utvecklade, FormalLetter och InformalLetter. För att registrera Gem som analyserare för en viss AnalyzableText kan man antingen använda konstruktorn Gem(AnalyzableText) eller manuellt anropa AnalyzableText.addAnalyzer(TextAnalyzer). Man kan alltså ha flera Gem (eller andra implementationer an TextAnalyzer) som analyserar samma text. Användaren avgör därefter själv vilka texttyper som skall hanteras genom att implementera interfacet TextType och köra TextAnalyzer.addTextType(TextType) för alla de texttyper som skall hanteras.