欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-04 17:47:30
...

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


HeadFirst设计模式_读书笔记_009_ 组合模式
            
    
    博客分类: 2.Java设计模式 java组合模式 
 

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();
		}
	}
	

}

 

  • HeadFirst设计模式_读书笔记_009_ 组合模式
            
    
    博客分类: 2.Java设计模式 java组合模式 
  • 大小: 4.5 KB
相关标签: java 组合模式