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

📄 flyweight.h

📁 常见设计模式的解析和实现,c++实现,经典的设计模式解析源码
💻 H
字号:
/********************************************************************
	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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -