结构型模式之三:组合模式
结构型模式之三:组合模式
刀狂剑痴 发表于2年前
结构型模式之三:组合模式
  • 发表于 2年前
  • 阅读 11
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 十分钟定制你的第一个小程序>>>   

组合模式是相对简单,但是他在很多设计中使用,想SWT,eclipse的工作空间,等等。他基本上产生了一个继承树,能通过使用一个统一的方法访问。

类图

 

下面的代码实现了下面的树结构 

 

java代码

import java.util.List;
import java.util.ArrayList;
 
//Component
interface Component {
    public void show();
}
 
//Composite
class Composite implements Component {
 
  private List childComponents = new ArrayList();
 
  public void add(Component component) {
    childComponents.add(component);
  }
 
  public void remove(Component component) {
    childComponents.remove(component);
  }
 
  @Override
  public void show() {
    for (Component component : childComponents) {
      component.show();
    }
  }
}
 
//leaf
class Leaf implements Component {
  String name;
  
  public Leaf(String s){
    name = s;
  }
  
  public void show() {
    System.out.println(name);
  }
}
 
public class CompositeTest {
  public static void main(String[] args) {
    Leaf leaf1 = new Leaf("1");
    Leaf leaf2 = new Leaf("2");
    Leaf leaf3 = new Leaf("3");
    Leaf leaf4 = new Leaf("4");
    Leaf leaf5 = new Leaf("5");
 
    Composite composite1 = new Composite();
    composite1.add(leaf1);
    composite1.add(leaf2);
 
    Composite composite2 = new Composite();    
    composite2.add(leaf3);
    composite2.add(leaf4);
    composite2.add(leaf5);
 
    composite1.add(composite2);
    composite1.show();
  }
}

以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-composite/

共有 人打赏支持
粉丝 18
博文 111
码字总数 82582
×
刀狂剑痴
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: