1.packagecom.youngmaster.model.Composite;
2.
3.import java.util.ArrayList;
4.import java.util.List;
5.
6./**
7.* @author youngmaster
8.* @E-mail:youngmaster.fly@gmail.com
9.* @version eclipse 3.4
10.* @create time:2009-9-13上午03:27:33
11.*
12.* 组合角色
13.* 实现组件角色接口,并且添加,删除的也是组件角色
14.*
15.* Composite本来可以再包含Leaf和Composite的。而 Leaf和Composite又都属于 Component,所以增加,删除的是Component
16.*
17.* 组合模式主要分为2种
18.*
19.* 1 透明式
20.
21.* 添加Component对象的操作定义在Component角色中,这样的话不仅Composite需要实现这些方法,Leaf也需要实现这些方法,
22.* 而这些方法对于Leaf来说没有任何意义,不过将系统实现统一起来了,因此对用户来说透明(用户无需区分Composite还是Leaf)
23.* ,因为这些角色中都具备这些方法。
24.
25.*2 安全式
26.
27.* 添加Component对象的操作定义在Composite角色中,这样的话Leaf就无需实现这些方法(因为Leaf本身根本不需要实现这些方法)
28.*/
29.
30.public class Compositeimplements Component {
31.
32.List<Component> list = new ArrayList<Component>();
33.
34.//添加
35.public void addComponent(Component component){
36.list.add(component);
37.}
38.//删除
39.public void removeComponent(Component component){
40.list.remove(component);
41.}
42.
43.//get
44.public List<Component>getAll(){
45.return list;
46.}
47.
48.public void run(){
49.for(Component component : list){
50.component.run();
51.}
52.}
53.
54.}
我爱你….为了你的幸福,我愿意放弃一切—包括你。