Heim  >  Artikel  >  Java  >  Lernen des Java-Dekorationsmodus

Lernen des Java-Dekorationsmodus

黄舟
黄舟Original
2017-10-13 10:19:251805Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn