1、共享元介面類flyweight
#ifndef flyweight_h
#define flyweight_h
class flyweight
;#endif
2、共享元實現類flyweightimpla定義
#ifndef flyweightimpla_h
#define flyweightimpla_h
#include
#include "flyweight.h"
using namespace std;
class flyweightimpla : public flyweight
4、共享元實現類flyweightimplb定義
#ifndef flyweightimplb_h
#define flyweightimplb_h
#include "flyweight.h"
class flyweightimplb : public flyweight
6、共享元預設實現類flyweightimpldefault定義
#ifndef flyweightimpldefault_h
#define flyweightimpldefault_h
#include "flyweight.h"
class flyeweightimpldefault :public flyweight
;#endif
7、共享元預設實現類flyweightimpldefault實現
#include
#include "flyweightimpldefault.h"
flyeweightimpldefault::flyeweightimpldefault()
8、獲取共享元的工廠類flyweightfactory定義
#ifndef flyweightfactory_h
#define flyweightfactory_h
#pragma warning(disable : 4786)
#include
#include
#include "flyweight.h"
using namespace std;
class flyweightfactory
;#endif
9、獲取共享元的工廠類flyweightfactory實現
#include "flyweightfactory.h"
#include "flyweightimpla.h"
#include "flyweightimplb.h"
#include "flyweightimpldefault.h"
typedef pairint_pair;
flyweight* flyweightfactory::getflyweight(string key)
else
return fres;
}flyweight* flyweightfactory::createflyweight(string key)
else if(!stricmp(key.c_str(),cstrb))
else
else
}flymap.insert(int_pair(key,fres));
return fres;
}10、客戶使用類client
#include "flyweight.h"
#include "flyweightfactory.h"
int main()
C 設計模式 八 FlyWeight模式
問題 在物件導向的設計過程中,可能需要建立建立許多物件,而實際上這些物件沒有多大的區別,我們可以建立乙個物件,讓這許多物件共享乙個物件,當然這些物件可能會有些許屬性差異,我們可以通過調整這些屬性來達到我們的要求。這樣的好處是可以避免重複建立物件帶來空間和時間的浪費。uml 實現 需要說明的是下面的實...
FlyWeight設計模式
先做個比方 乙個停車場有1000輛車子,每輛車子都是乙個物件,每個物件例項占用記憶體0.1m,那麼總共點用100m 如果數量再多些10000,100000.系統記憶體很容易消耗完.我們可以看出這麼車子有很多是相同的,那麼是否可以用共享的方式來減少例項的數量呢?答案是肯定的,於是flyweight方式...
c 設計模式 享元模式 Flyweight
近期總結 最近惰性很強,專案寫的也很差,部落格也沒有按時更新,覺得自己碌碌無為還安慰自己平凡可貴,接下來要好好整理一下最近複習和學到的知識 享元模式 我們每學習一種新的設計模式,首先要明白這個模式可以幹什麼?該如何使用這種設計模式?所謂的享元模式主要是用了減少建立物件的數量,用來減少記憶體的占用和提...