Frage

Ich hat vor kurzem eigentlich nur wirklich Dependency Injection und das Wunder des Decorator-Entwurfsmusters groked und alles über den Ort verwenden.

So schön es ist aber eine Sache, die ich habe Schwierigkeiten, die mit ist meine Dekorateur Klassen zu benennen, so würde ich nur gerne wissen, was andere tun. Sie anhängen Sie immer das Wort Decorator? Haben Sie den Namen der Schnittstelle enthalten seine Dekoration? Haben sie ihren eigenen Namensraum bekommen?

Was ihr tun?

War es hilfreich?

Lösung

ich vermeiden, mit Design-Muster-Namen. Ich denke, das, wenn irgendwo in der Dokumentation gehört. Benennen Sie die Dekorateur Klasse / Funktion nach dem, was er tut oder darstellt. Die Tatsache, dass es verziert oder Brücken oder Links oder Proxies oder Wieder darstellt, ist von geringer Bedeutung.

Jedes Mal, wenn Sie einen String nennen, fügen Sie eine String-Endung? Klingt wie hgrnNotation mir, und das ist etwas, was ich versuchen und vermeiden.

Andere Tipps

Nehmen wir ein Beispiel aus dem IO-Framework Java-API. Es verwendet das Decorator-Muster ausführlich, aber die Namen der Klassen reflektieren nicht diese. Zum Beispiel kann ein BufferedReader kann ein Filereader dekorieren Aber sie sind nach ihrer Funktion mit dem Namen -. Die Leser

Hinzufügen Dekorateur auf den Namen zu weiteren Problemen führen würde, wenn Sie auch andere Muster übernehmen die gleichen Klassen beteiligt wie es häufig der Fall ist. Sie könnten mit einer Klasse mit dem Namen MyDecoratorStrategyComponent enden.

Nennen Sie es, was es tut.

Ich habe eine Reihe von Dekorateure für eine IPrinter Schnittstelle. Sie heißen:

  • PrintDisasterRecovery - Ausnahme Handhabung
  • PrintQueuer - Macht es ein Asynchron-Aufruf

Diese Chaps erben beide von PrintDecorator, also wenn jemand unter der Decke späht können sie sehen, was los ist.

Im Allgemeinen, wo das Muster in einem Objekt eingekapselt ist (im Vergleich zu einer Sammlung von Objekten), dann ist es übersichtlicher und einfacher zu den Musternamen in der Klasse ist, in diesem Fall als Suffix mit Decorator. Diese Arbeit gut für Proxies, Dekorateure, Fabriken, Adapter etc .. aber nicht für andere Muster arbeiten, wo eine Gruppe von Objekten in der Umsetzung des Musters wie eine Brücke benötigt wird (also das, was Objekt würde die -Brücke Suffix appropraitely nehmen?)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top