代码改变世界

Flyweight Design Pattern 共享元设计模式

2017-07-19 14:20  tlnshuju  阅读(157)  评论(0编辑  收藏  举报

就是利用一个类来完毕多种任务。不用每次都创建一个新类。

个人认为这个设计模式在C++里面,好像能够就使用一个函数取代,利用重复调用这个函数完毕任务和重复利用这个类,好像几乎相同。

只是既然是一个设计模式,那么就使用类来完毕任务。而对于Java来说是不面向过程的。故此就必须使用这个设计模式了。

我这里设计一个仓库来保存这种类。须要的时候重复取出来使用。

很easy的设计模式:

#include <stdio.h>

class ReusedObject
{
public:
	ReusedObject() {}
	void finishTask()
	{
		puts("Use reused object to do task.");
	}
};

class Warehouse
{
	ReusedObject *obj;
public:
	Warehouse()
	{
		obj = new ReusedObject;
	}

	~Warehouse()
	{
		delete obj;
	}

	ReusedObject *getObject()
	{
		return obj;
	}
};

int main()
{
	Warehouse wh;
	ReusedObject *obj = wh.getObject();
	obj->finishTask();
	return 0;
}