当前位置: 首页 > 编程笔记 >

C++:组合模式

邵宜年
2023-04-24

将对象组合成树形结构以表示“部分整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性(稳定)。

class Component
{
public:
	virtual void process() = 0;
	virtual ~Component() {}
};
//树节点
class Composite : public Component {
	string name;
	list<Component*> elements;
public:
	Composite(const string & s) : name(s) {}
	void add(Component* element) {
		elements.push_back(element);
	}
	void remove(Component* element) {
		elements.remove(element);
	}
	void process() {
		for (auto &e : elements)
			e->process(); //多态调用
	}
};
class Leaf : public Component {
	string name;
public:
	Leaf(string s) : name(s) {}
	void process() {
	}
};
void Invoke(Component & c) {
	c.process();
}
int main()
{
	Composite root("root");
	Composite treeNode1("treeNode1");
	Composite treeNode2("treeNode2");
	Leaf leaf1("left1");
	Leaf leaf2("left2");

	root.add(&treeNode1);
	treeNode1.add(&treeNode2);
	treeNode1.add(&leaf1);
	root.add(&treeNode2);
	Invoke(root);
}

 类似资料:
  • 本文向大家介绍C#组合模式实例详解,包括了C#组合模式实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#组合模式。分享给大家供大家参考。具体如下: Company.cs如下: ConcreteCompany.cs如下: FinanceDepartment.cs如下: HRdepartment.cs如下: Program.cs如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 主要内容:介绍,实现,Employee.java,CompositePatternDemo.java组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。 介绍 意图:将对象组合

  • 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。 介绍 意图:将对象组合

  • 简介 有个项目,是为一家在全国许多城市都有分销机构的大公司做办公管理系统,总部有人力资源,财务,运营等部门。但是总公司的人力资源部,财务部等办公管理功能在所有的分公司或办事处都需要有。我们可能希望人力资源部,财务部的管理功能可以复用于分公司。这其实就是整体与部分可以被一致对待的问题。 组合模式:将对象组合成树形结构以表示'部分-整体'的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性

  • 组合模式(Composite Pattern),又叫部分整体模式,是用于把一组相似的对象当作一个单一的对象。组合模式依据树形结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构型模式,它创建了对象组的树形结构。 这种模式创建了一个包含自己对象组的类。该类提供了修改相同对象组的方式。 我们通过下面的实例来演示组合模式的用法。实例演示了一个组织中员工的层次结构。 介绍 意图:将对象组合

  • 组合模式 描述了一组对象可像单个对象一样的对待。 这允许我们能统一的处理单个对象或多个对象。这意味着无论是一个对象还是一千个对象我们都能以同样的行为来处理。 在Jquery中,当我们在一个节点或多个节点上应用方法时,我们都能以相同的方式来选择并返回JQuery对象。 下面这个演示我们将使用Jquery的选择器。对单一元素(比如拥有唯一ID的元素)或拥有相同标签或Class的一组元素添加名为acti