Überblick
Der dekorative Modus ist die Funktion der Ausweitung von Objekten auf transparente Weise für den Kunden und eine Alternative zu Erbschaftsbeziehungen. Mit anderen Worten, der Kunde glaubt nicht, dass es einen Unterschied zwischen dem Objekt vor und nach der Dekoration gibt. Der dekorative Modus kann die Funktion des Objekts erweitern, ohne mehr Unterklassen zu erstellen. Der Schlüssel zum dekorativen Modus ist, dass diese Erweiterung vollständig transparent ist.
Struktur des Musters
UML -Klassendiagramm:
Zeichen im Dekorationsmodus:
Abstrakte Komponentenrolle (Projekt): Gibt eine Schnittstelle zur Regulierung von Objekten, die bereit sind, zusätzliche Verantwortlichkeiten zu erhalten.
Spezifische Komponentenrolle (Mitarbeiter): Definieren Sie eine Klasse, die zusätzliche Verantwortlichkeiten erhält
Dekorative Rolle (Manager): Hält eine Instanz eines Komponentenobjekts und definiert eine Schnittstelle, die mit der abstrakten Komponentenschnittstelle übereinstimmt
Spezifische dekorative Rolle (Managera, Managerb): Verantwortlich für das "Kleben" zusätzlicher Verantwortung für Komponentenobjekte
Codebeispiel
Paketinterview; Schnittstellenprojekt {void docoding ();} class Employe Implements Project {@Override public void docoding () {System.out.println ("Engineering is Programming ..."); }} Class Manager implementiert das Projekt {private Projektprojekt; Public Manager (Projektprojekt) {this.project = project; } @Override public void docoding () {startNewwork (); project.docoding (); } public void startNewwork () {}} Klasse Managera erweitert Manager {Public Managerera (Projektprojekt) {Super (project); } @Override public void startNewwork () {System.out.println ("Development Manager startet einen neuen Arbeitsplan"); }} class Managerb erweitert Manager {publical Managerb (Projektprojekt) {Super (Projekt); } @Override public void startNewwork () {System.out.println ("Test Manager startet einen neuen Arbeitsplan"); }} public class Achtung {public static void main (String arg []) {project project = new Employe (); Project Managerera = New Managera (Projekt); Projektmanagerb = New ManagerB (Projekt); Managerera.Docoding (); ManagerB.Docoding (); }} Vor- und Nachteile des dekorativen Modus:
Vorteil:
Der Zweck des dekorativen Modus und der Vererbung besteht darin, die Funktion des Objekts zu erweitern, aber der dekorative Modus kann mehr Flexibilität als Vererbung bieten. Der dekorative Modus ermöglicht es dem System, sich dynamisch zu entscheiden, eine benötigte "Dekoration" zu "kleben", und die Erbschaftsbeziehung ist unterschiedlich. Die Vererbungsbeziehung ist statisch und wird vor dem Laufen des Systems entschieden.
Durch die Verwendung verschiedener spezifischer dekorativer Kategorien und Kombinationen dieser dekorativen Kategorien können Designer viele verschiedene Verhaltenskombinationen schaffen.
Mangel:
Aufgrund der Verwendung von dekorativen Mustern kann eine weniger Anzahl von Klassen erforderlich sein, als Vererbungsbeziehungen zu verwenden. Die Verwendung weniger Klassen erleichtert das Design mit Sicherheit. Andererseits erzeugt die Verwendung dekorativer Muster mehr Objekte als die Verwendung von Vererbungsbeziehungen. Mehr Objekte können Fehler erschweren, zumal sie alle ähnlich aussehen.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.