Heim >Java >javaLernprogramm >Beispielanalyse eines Objektstrukturmusters eines Kompositionsmodells in Java

Beispielanalyse eines Objektstrukturmusters eines Kompositionsmodells in Java

黄舟
黄舟Original
2017-09-11 10:48:021407Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erläuterung des Objektstrukturmodells des Kombinationsmodells in Java vorgestellt. Ich hoffe, dass dieser Artikel jedem helfen kann, das Anwendungsobjektstrukturmodell zu verstehen

Detaillierte Erläuterung des Objektstrukturmusters des Kombinationsmodells in Java

1. Absicht

Kombinieren von Objekten zu einem Baum Struktur zur Darstellung einer Teil-, „Ganzen“-Hierarchie. Mit Composite können Benutzer einzelne Objekte und zusammengesetzte Objekte konsistent verwenden.

2. Anwendbarkeit

Sie möchten die Teil-Ganze-Hierarchie von Objekten darstellen

Sie möchten, dass der Benutzer sie ignoriert das kombinierte Objekt Im Gegensatz zu einzelnen Objekten werden Benutzer alle Objekte in einer zusammengesetzten Struktur einheitlich verwenden.

3. Struktur

4. Code


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);
  }
}


public class Client {
  public static void main(String[] args){
    // 构造一个根节点
    Composite root = new Composite("Root");

    // 构造两个枝干节点
    Composite branch1 = new Composite("Branch1");
    Composite branch2 = new Composite("Branch2");

    // 构造两个叶子节点
    Leaf leaf1 = new Leaf("Leaf1");
    Leaf leaf2 = new Leaf("Leaf2");

    branch1.addChild(leaf1);
    branch2.addChild(leaf2);

    root.addChild(branch1);
    root.addChild(branch2);

    root.doSomething();
  }
}

输出结果:
Root
Branch1
Leaf1
Branch2
Leaf2

Das obige ist der detaillierte Inhalt vonBeispielanalyse eines Objektstrukturmusters eines Kompositionsmodells in Java. 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