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!