Composite Pattern 组合模式

原创 2015年07月07日 11:17:43

Composite Pattern: allows you to compose objects into tree structures to represent part-whole hierarchies. Composite lets clients treat individual objects and compositions of objects uniformly.

This pattern gives us a way to create a tree structure that can handle a nested group of menus and menu items in the same structure. The composite pattern allows us to build structures of objects in the form of trees that contain bot compositions of objects and individual objects as nodes. Using a composite structure, we can apply the same operations over both composites and individual objects. In other words, in most cases we can ignore the differences between compositions of objects and individual objects.

组合模式有时又叫做部分-整体模式(Part-Whole)。组合模式将对象组织到树结构中,可以用来描述整体与部分的关系。组合模式可以使客户端将单纯元素与复合元素同等看待。

定义Component抽象类:

public abstract class Component {
	public void add(Component component) {
		throw new UnsupportedOperationException();
	}
	public void remove(Component component) {
		throw new UnsupportedOperationException();
	}
	public void operation() {
		throw new UnsupportedOperationException();
	}
	public void getChild(int pos) {
		throw new UnsupportedOperationException();
	}
}
方法的默认值为Exception

定义Leaf(单纯元素):

public class Leaf extends Component {
	@Override
	public void operation() {
		// do something
	}
}
定义Composite(复合元素):

public class Composite extends Component {
	@Override
	public void add(Component component) {
		// do something
	}
	@Override 
	public void remove(Component component) {
		// do something
	}
	@Override
	public void operation() {
		// do something
	}
	@Override
	public void getChild(int pos) {
		// do something
	}
}

应用:菜单。


版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

组合模式(Composite Pattern)

Composite组合模式主要是应对这样的问题:一类具有“容器特征”的对象——即他们在充当对象的同时,又是其他对象的容器的情况。在编写时我们常常会造成:客户代码过多地依赖于对象容器复杂的内部实现,对象...

组合模式【Composite Pattern】

大家在上学的时候应该都学过“数据结构”这门课程吧,还记得其中有一节叫“二叉树”吧,我们上学那会儿这一章节是必考内容,左子树,右子树,什么先序遍历后序遍历什么,重点就是二叉树的的遍历,我还记得当时老师就...

组合模式 | Composite Pattern

组合模式: 将对象组合成树形结构以表示“部分整体”的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。...

组合模式 Composite Pattern

一、什么是组合模式 Composite模式也叫组合模式,是构造型的设计模式之一。通过递归手段来构造树形的对象结构,并可以通过一个对象来访问整个对象树。 二、组合模式的结构 三、组...

第10章 组合模式(Composite Pattern)

组合模式(Composite Pattern) ——.NET设计模式系列之十一 Terrylee,2006年3月 概述 组合模式有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单...

Swift 10 组合模式 Composite Pattern

/* 大宏药业有阿司匹林和扑热息痛生产部门。 对於老板、他只需要指示生产药品就行。 组合模式能各控件解耦、假如想增加抗组胺药生产部门、只需增加此部门即可。 */ class MedicineProd...

Java实现(09)——组合模式(Composite Pattern)

组合模式将一组对象以树的形式看成一个整体。 import java.util.ArrayList; import java.util.List; /** * Created by wan...
  • WAN_EXE
  • WAN_EXE
  • 2016年12月17日 09:49
  • 236
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Composite Pattern 组合模式
举报原因:
原因补充:

(最多只允许输入30个字)