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模式使得用户对单个对象和组合对象的使用具有一致性。 二、适用性 • 你想表示对象的...
  • jialinqiang
  • jialinqiang
  • 2013年05月20日 22:30
  • 3448

设计模式(结构型)之组合模式(Composite Pattern)

组合模式又叫做部分-整体模式,使我们在树型结构的问题中模糊简单元素和复杂元素的概念,客户程序可以像处理简单元素一样来处理复杂的元素,从而使得客户程序与复杂元素的内部结构解耦。组合模式可以优化处理递归或...
  • yanbober
  • yanbober
  • 2015年04月30日 15:14
  • 2495

组合模式(Composite Pattern)

定义 组合模式将具有相同的基本类型的对象组合成树形结构的对象,该树的父节点和子节点具有相同的类型,相同的接口。换句话说,将对象组合成树形结构以表示“部分-整体”的层次结构,Composite使得用户对...
  • u014161864
  • u014161864
  • 2015年01月23日 19:11
  • 2605

Head First 设计模式 (九) 迭代器与组合模式(Iterator & Composite pattern) C++实现

  • 2013年05月04日 23:27
  • 2.57MB
  • 下载

设计模式之组合模式(Composite Pattern)

  • 2012年03月04日 17:58
  • 87KB
  • 下载

设计模式面面观(11):组合模式(Composite Pattern)-结构型模式

  • 2008年02月26日 09:39
  • 38KB
  • 下载

组合模式(Composite Pattern)

组合模式,将对象组合成树形结构以表示“部分-整体”的层次结构,组合模式使得用户对单个对象和组合对象的使用具有一致性。 有时候又叫做部分-整体模式,它使我们树型结构的问题中,模糊了简单元素和复杂元素的...
  • onlyyjco
  • onlyyjco
  • 2016年09月18日 15:49
  • 176

组合模式(Composite Pattern)

组合模式:允许你将对象组合成树形结构来表现“整体/部分”层次结构。组合能让客户以一致的方式处理个别对象以及对象组合。 场景:利用组合模式将菜单和其子项打印出来,菜单有三套早餐、午餐、咖啡,其...
  • brking014
  • brking014
  • 2017年04月14日 11:04
  • 76

组合模式【Composite Pattern】

Composite,组合模式:将对象组合成树形结构以表示部分整体的关系,Composite使得用户对单个对象和组合对象的使用具有一致性。     package com.cbf4life....
  • guotong1988
  • guotong1988
  • 2012年11月30日 18:14
  • 456

组合模式【Composite Pattern】

大家在上学的时候应该都学过“数据结构”这门课程吧,还记得其中有一节叫“二叉树”吧,我们上学那会儿这一章节是必考内容,左子树,右子树,什么先序遍历后序遍历什么,重点就是二叉树的的遍历,我还记得当时老师就...
  • admin1973
  • admin1973
  • 2017年05月30日 10:48
  • 181
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Composite Pattern 组合模式
举报原因:
原因补充:

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