(本部落格旨在個人總結回顧)
共享模式:運用共享技術有效支撐大量細粒度的物件。
說明:
優點:大大減少物件的建立,降低系統的記憶體,使效率提高。
缺點:提高了系統的複雜度,需要分離出外部狀態和內部狀態,而且外部狀態具有固有化的性質,不應該隨著內部狀態的變化而變化,否則會造成系統的混亂。
// stdafx.h : 標準系統包含檔案的包含檔案,
// 或是經常使用但不常更改的
// 特定於專案的包含檔案
//#pragma once
#include "targetver.h"
#include #include #include using namespace std;
// todo: 在此處引用程式需要的其他標頭檔案
flyweight.h
#pragma once
class flyweight
;
flyweight.cpp
#include "stdafx.h"
#include "flyweight.h"
flyweight::flyweight()
flyweight::~flyweight()
concreteflyweight.h
#pragma once
#include "flyweight.h"
class concreteflyweight :
public flyweight
;
concreteflyweight.cpp
#include "stdafx.h"
#include "concreteflyweight.h"
concreteflyweight::concreteflyweight()
concreteflyweight::~concreteflyweight()
void concreteflyweight::operation(int nextrinsicsstate)
unshareconcreteflyweight.h
#pragma once
#include "flyweight.h"
class unsharedconcreteflyweight :
public flyweight
;
unshareconcreteflyweight.cpp
#include "stdafx.h"
#include "unsharedconcreteflyweight.h"
unsharedconcreteflyweight::unsharedconcreteflyweight()
unsharedconcreteflyweight::~unsharedconcreteflyweight()
void unsharedconcreteflyweight::operation(int nextrinsicsstate)
flyweightfactory.h
#pragma once
#include #include "concreteflyweight.h"
class flyweightfactory
;
flyweightfactory.cpp
#include "stdafx.h"
#include "flyweightfactory.h"
flyweightfactory::flyweightfactory()
flyweightfactory::~flyweightfactory()
concreteflyweight* flyweightfactory::getflyweight(string strkey)
else
}
呼叫**
flyweightpatternmemo.cpp
// flyweightpatternmemo.cpp : 定義控制台應用程式的入口點。
設計模式 共享模式
看了果凍兄的部落格,發現大家對裡面的乙個實現有一些不同的見解,貼出來記錄一下,其博文如下 共享模式的主要想法就是 運用共享技術有效地支援大量細粒度的物件。所以應該將物件的外部特徵由更高一級的物件來管理。在原文中,博主將棋子的外部特徵 座標 作為了棋子的乙個屬性來管理,又在棋盤類中採用覆蓋的方法來每一...
共享模式 專有模式
概念 適用場景 通用引數 local listener pmon只會動態註冊port等於1521的監聽,否則pmon不能動態註冊listener,要想讓pmon動態註冊listener,需要設定local listener引數。listener networks 配置多個remote listene...
共享模式 專有模式
概念 適用場景 通用引數 local listener pmon只會動態註冊port等於1521的監聽,否則pmon不能動態註冊listener,要想讓pmon動態註冊listener,需要設定local listener引數。listener networks 配置多個remote listene...