标签:一个 for bst ati pos main his extend 多个
组合模式,顾名思义就是把多个功能相似的对象组合在一起就像是一个对象的功能一样,代码如下:
package test; import java.util.ArrayList; import java.util.List; /* * 组合对象模式 */ public class CompositeDemo { public static void main(String[] args) { CompositeParent compositeParent = new CompositeChild1("compositeParent"); CompositeParent child1 = new CompositeChild1("child1"); CompositeParent child2 = new CompositeChild1("child2"); CompositeParent child3 = new CompositeChild1("child3"); compositeParent.add(child1); compositeParent.add(child2); compositeParent.add(child3); for (CompositeParent row : compositeParent.rows) { row.say(); } } } abstract class CompositeParent{ public List<CompositeParent> rows = new ArrayList<>(); public String name; public void say(){}; public void add(CompositeParent compositeParent){}; } class CompositeChild1 extends CompositeParent{ public CompositeChild1(String name) { this.name = name; } @Override public void say() { System.out.println(name + " say that... "); } @Override public void add(CompositeParent compositeParent) { super.rows.add(compositeParent); } }
以上, 我们看到多个child的功能被一个composite的对象组合到了一个list中,调用采用了迭代的方式。组合的方式其实可以又很多变化,不一定要按照这种方式,关键是了解多个类对象的功能转换成一个类对象的理念
标签:一个 for bst ati pos main his extend 多个
原文地址:http://www.cnblogs.com/lay2017/p/7614628.html