首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 操作系统 >

Composite方式

2012-09-15 
Composite模式?package composite_treeimport java.util.ArrayListpublic abstract class Component {pu

Composite模式

?

package composite_tree;import java.util.ArrayList;public abstract class Component {public String name;public ArrayList<Component> list;public abstract void add(Component component);public abstract void remove(Component component);public abstract void display();public Component(final String _name) {this.name = _name;}}

?

package composite_tree;public class Leaf extends Component {public Leaf(String _name) {super(_name);}@Overridepublic void add(Component component) {System.out.println("you can't add component to a Leaf object");}@Overridepublic void remove(Component component) {System.out.println("you can't remove component to a Leaf object");}@Overridepublic void display() {System.out.println("|--" + name);}}

?

package composite_tree;import java.util.ArrayList;public class ConcreteComponent extends Component {public ConcreteComponent(String _name){super(_name);list=new ArrayList<Component>();}@Overridepublic void add(Component component) {list.add(component);}@Overridepublic void remove(Component component) {if(list.contains(component)){list.remove(component);}}@Overridepublic void display() {System.out.println(this.name);for(Component mc:list){mc.display();}}}

?

package composite_tree;public class Client {public static void main(String[] args) {Leaf leaf = new Leaf("计算机学院");Leaf leaf2 = new Leaf("文学院");//创建一级分类ConcreteComponent con = new ConcreteComponent("院系");con.add(leaf);con.add(leaf2);Leaf leaf3 = new Leaf("学生会");Leaf leaf4 = new Leaf("团总支");//创建一级分类ConcreteComponent con2 = new ConcreteComponent("校团委");con2.add(leaf3);con2.add(leaf4);Leaf leaf5 = new Leaf("报社");Leaf leaf6 = new Leaf("外联部");//创建二级分类ConcreteComponent secondcon = new ConcreteComponent("学生会");secondcon.add(leaf5);secondcon.add(leaf6);//在一级分类(校团委)下添加二级分类学生会con2.add(secondcon);//将所有的分类添加到root下ConcreteComponent root = new ConcreteComponent("root");root.add(con);root.add(con2);//显示节目列表root.display();}}

?

结果:

root院系|--计算机学院|--文学院校团委|--学生会|--团总支学生会|--报社|--外联部
?

?

热点排行