ホームページ >Java >&#&チュートリアル >Javaにおける構成モデルのオブジェクト構造パターンの解析例

Javaにおける構成モデルのオブジェクト構造パターンの解析例

黄舟
黄舟オリジナル
2017-09-11 10:48:021405ブラウズ

この記事は、Java のコンポジション モデルのオブジェクト構造モデルの詳細な説明に関する関連情報を主に紹介します。この記事が、アプリケーションのオブジェクト構造モデルを理解するのに役立つことを願っています。

のオブジェクト構造。 Java の構成モデル パターンの詳細な説明

1. 意図

オブジェクトをツリー構造に結合して、「部分全体」の階層を表します。複合を使用すると、ユーザーは単一オブジェクトと複合オブジェクトを一貫して使用できるようになります。

2. 適用性

オブジェクトの部分全体の階層を表現したい

結合されたオブジェクトと単一のオブジェクトの違いをユーザーに無視してもらい、ユーザーは結合された構造内のすべてのオブジェクトを均一に使用するようにします。

3. 構造

4. コード


public abstract class Component {
  protected String name; //节点名
  public Component(String name){
    this.name = name;
  }

  public abstract void doSomething();
}


public class Composite extends Component {
  /**
   * 存储节点的容器
   */
  private List<Component> components = new ArrayList<>();

  public Composite(String name) {
    super(name);
  }

  @Override
  public void doSomething() {
    System.out.println(name);

    if(null!=components){
      for(Component c: components){
        c.doSomething();
      }
    }
  }

  public void addChild(Component child){
    components.add(child);
  }

  public void removeChild(Component child){
    components.remove(child);
  }

  public Component getChildren(int index){
    return components.get(index);
  }
}


public class Leaf extends Component {


  public Leaf(String name) {
    super(name);
  }

  @Override
  public void doSomething() {
    System.out.println(name);
  }
}


そうだね

以上がJavaにおける構成モデルのオブジェクト構造パターンの解析例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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