2016-04-25 8 views
0

Beim Erstellen einer benutzerdefinierten Methode implementiere ich TemplateMethodModelEx und gibt das SimpleSequence-Objekt zurück. nach API, sollte ich diesen Konstruktor verwenden:Best Practice, um den Standard-Objekt-Wrapper zu erhalten?

SimpleSequence(ObjectWrapper wrapper) 

da ich incompatibleImprovements als 2.3.24 setze, sagte der doc ich einfach Configuration-Instanz getObjectWrapper verwenden können(). Mein Problem ist, wenn ich TemplateMethodModelEx implementiere, habe ich keinen Zugriff auf die aktuelle Konfiguration, es sei denn, ich übergebe cfg dem Constructor der Methode. dann würde die root.put wie folgt aussehen:

root.put("getMeList", new GetMeListMethod(cfg)); 

mir dies sieht seltsam aus, ich frage mich, was das Recht vor, diese Art von SimpleSquence Modell zu konstruieren und was ist der richtige Weg, um die Standard-Objekt Wrapper zu bekommen.

Vielen Dank

Antwort

0

Sie im ObjectWrapper als Konstruktor Parameter übergeben sollte. (Es ist nicht verwandt mit incompatibleImprovements 2.3.24.) Alle TemplateModel, die andere TemplateModel -s erstellt (wie TemplteSequenceModel -s, TemplateHashModel -s, TemplateMethodModel -s) verwendet, um so zu arbeiten. Dies ist normalerweise nicht offensichtlich, da sie von ein ObjectWrapper erstellt werden. Wenn Sie die TemplateModel -s jedoch manuell tun (was in Ordnung ist), dann werden Sie diese Tatsache begegnen.