HeadFirst设计模式_读书笔记_009_ 组合模式_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > HeadFirst设计模式_读书笔记_009_ 组合模式

HeadFirst设计模式_读书笔记_009_ 组合模式

 2017/3/31 5:32:30  afra.liu  程序员俱乐部  我要评论(0)
  • 摘要:组合模式:允许将对象组合成树形结构来表现“整体/部分”的结构,让用户可以用一致的方式处理个别对象以及组合对象。publicabstractclassNode{protectedStringname;protectedStringdesc;publicNode(Stringdesc,Stringname){this.name=name;this.desc=desc;}publicvoidaddChild(Nodenode)
  • 标签:笔记 读书笔记 模式 设计 设计模式

组合模式:允许将对象组合成树形结构来表现“整体/部分”的结构,让用户可以用一致的方式处理个别对象以及组合对象。



?

class="java" name="code">public abstract class Node {

	protected String name;
	protected String desc;
	public Node(String desc, String name)
	{
		this.name = name;
		this.desc = desc;
	}
	
	public void addChild(Node node)
	{
		throw new UnsupportedOperationException();
	}
	
	public void removeChild(Node node)
	{
		throw new UnsupportedOperationException();
	}
	
	public Node getChild(int index)
	{
		throw new UnsupportedOperationException();
	}
	public Iterator createIterator()
	{
		throw new UnsupportedOperationException();
	}
	
	public void print()
	{
		
	}
}

?

public class Leaf extends Node {

	public Leaf(String desc, String name) {
		super(desc, name);
	}

	public void print()
	{
		System.out.print("-name:" + name + "-desc:" + desc);
		System.out.println();
	}

}

?

public class NodeItem extends Node {
	
	public NodeItem(String desc, String name) {
		super(desc, name);
		this.childs = new ArrayList<Node>();
	}

	private List<Node> childs;
  
	public void addChild(Node node)
	{
		this.childs.add(node);
	}
	
	public void removeChild(Node node)
	{
		this.childs.remove(node);
	}
	
	public Node getChild(int index)
	{
		return childs.get(index);
	}
	public Iterator createIterator()
	{
		return this.childs.iterator();
	}
	
	public void print()
	{ 
		System.out.println("-name:" + name + "-desc:" + desc);
		for(Node child: childs)
		{
			child.print();
		}
	}
	

}

?

  • 大小: 4.5 KB
  • 查看图片附件
发表评论
用户名: 匿名