Dieser Artikel stellt hauptsächlich die relevanten Informationen zum Dekorationsmodus beim Erlernen von Java-Designmustern vor. Er hat einen gewissen Referenzwert.
Dekorationsmodus: Dynamisches Geben Ein Objekt fügt einige zusätzliche Verantwortlichkeiten hinzu. und das Dekorationsmuster ist im Hinblick auf das Hinzufügen von Funktionalität flexibler als die Unterklassenbildung.
Vorteile: Dekorationsklassen und dekorierte Klassen können unabhängig voneinander entwickelt werden und sind nicht aneinander gekoppelt. Der Dekorationsmodus ist ein alternativer Modus zur Vererbung und kann die Funktionen einer Implementierungsklasse dynamisch erweitern.
Nachteile: Mehrschichtige Dekoration ist komplizierter.
Beispiel: Kleidung für eine Person konfigurieren
1: Codestrukturdiagramm
2: Erstellen Sie eine Personenklasse (ConcreteComponent)
package DecoratorModel; /** * 2017-10-9 10:39:09 * 装饰器设计模式 * Person 类 ConcreteComponent * @author 我不是张英俊 * */ public class Person { public Person(){} private String name; public Person(String name){ this.name=name; } public void Show(){ System.out.println("装扮的"+name); } }
3: Bekleidungskategorie
package DecoratorModel; /** *服饰类(Decorator) * @author 我不是张英俊 * */ public class Finery extends Person{ protected Person component; //打扮 public void Decorate(Person component){ this.component=component; } public void Show(){ if(component!=null){ component.Show(); } } }
4: Spezifische Bekleidungskategorie
public class Tshirts extends Finery { public void Show(){ System.out.println("大T恤"); super.Show(); } } public class BigTrouser extends Finery { public void Show(){ System.out.println("垮裤"); super.Show(); } } public class Sneakers extends Finery { public void Show(){ System.out.println("破球鞋"); super.Show(); } } public class Suit extends Finery { public void Show(){ System.out.println("西装"); super.Show(); } } public class Tie extends Finery { public void Show(){ System.out.println("领带"); super.Show(); } } public class LeatherShoes extends Finery { public void Show(){ System.out.println("皮鞋"); super.Show(); } }
5: Testklasse
public class test { public static void main(String[] args) { Person xc=new Person("旺财"); Sneakers pqx=new Sneakers(); BigTrouser kk=new BigTrouser(); Tshirts dtx=new Tshirts(); pqx.Decorate(xc); kk.Decorate(pqx); dtx.Decorate(kk); dtx.Show(); } }
6: Konsole
Großes T-Shirt
Baggy Hosen
Kaputte Turnschuhe
Zieh dich schick für Wohlstand
Das obige ist der detaillierte Inhalt vonLernen des Java-Dekorationsmodus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!