ホームページ >Java >&#&チュートリアル >Java デコレーション モードの学習

Java デコレーション モードの学習

黄舟
黄舟オリジナル
2017-10-13 10:19:251828ブラウズ

この記事では主に Java デザインパターン学習における装飾モードの関連情報を詳しく紹介します。興味のある方は参考にしてください。

装飾モード: 追加要素をオブジェクトに動的に追加します。機能的には、装飾モードはサブクラスを生成するよりも柔軟です。

利点: 装飾クラスと装飾クラスは、相互に結合せずに独立して開発できます。装飾モードは、実装クラスの機能を動的に拡張できます。

短所: 多層装飾はより複雑です。

例: 人の服装を設定する

1: コード構造図

2: 人物クラス(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: 服装クラス


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: 特定の服装カテゴリ


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: テストカテゴリ


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: コンソール

ビッグTシャツ
バッグパンツ
壊れたスニーカー
繁栄のためにドレスアップ

以上がJava デコレーション モードの学習の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。