⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 composite.h

📁 Factory,abstract Factory,Builder,Prototype,Singleton,Adapt,Bridge等20种常见的设计模式(含代码)
💻 H
字号:
/********************************************************************
	created:	2006/07/20
	filename: 	Composite.h
	author:		李创
                http://www.cppblog.com/converse/

	purpose:	Composite模式的演示代码
*********************************************************************/

#ifndef COMPOSITE_H
#define COMPOSITE_H

#include <list>

// 组合中的抽象基类
class Component
{
public:
	Component(){}
	virtual ~Component(){}

	// 纯虚函数,只提供接口,没有默认的实现
	virtual void Operation() = 0;

	// 虚函数,提供接口,有默认的实现就是什么都不做
	virtual void Add(Component* pChild);
	virtual void Remove(Component* pChild);
	virtual Component* GetChild(int nIndex);
};

// 派生自Component,是其中的叶子组件的基类
class Leaf
	: public Component
{
public:
	Leaf(){}
	virtual ~Leaf(){}

	virtual void Operation();
};

// 派生自Component,是其中的含有子件的组件的基类
class Composite
	: public Component
{
public:
	Composite(){}
	virtual ~Composite();

	virtual void Operation();

	virtual void Add(Component* pChild);
	virtual void Remove(Component* pChild);
	virtual Component* GetChild(int nIndex);

private:
	// 采用list容器去保存子组件
	std::list<Component*>	m_ListOfComponent;
};

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -