flyweight.h

来自「详细介绍了20种设计模式的具体实现框架,很有参考价值」· C头文件 代码 · 共 62 行

H
62
字号
/********************************************************************
	created:	2006/07/26
	filename: 	FlyWeight.h
	author:		李创
                http://www.cppblog.com/converse/

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

#ifndef FLYWEIGHT_H
#define FLYWEIGHT_H

#include <string>
#include <list>

typedef std::string STATE;

class Flyweight
{
public:
	virtual ~Flyweight(){}

	STATE GetIntrinsicState();
	virtual void Operation(STATE& ExtrinsicState) = 0;

protected:
	Flyweight(const STATE& state) 
		:m_State(state)
	{
	}

private:
	STATE m_State;
};

class FlyweightFactory
{
public:
	FlyweightFactory(){}
	~FlyweightFactory();

	Flyweight* GetFlyweight(const STATE& key);

private:
	std::list<Flyweight*>	m_listFlyweight;
};

class ConcreateFlyweight
	: public Flyweight
{
public:
	ConcreateFlyweight(const STATE& state)
		: Flyweight(state)
	{
	}
	virtual ~ConcreateFlyweight(){}

	virtual void Operation(STATE& ExtrinsicState);
};

#endif

⌨️ 快捷键说明

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