用於交換產品系列,如access->sqlserver;
產品的具體類名被具體工廠的實現分離
[html]
#include
#include
#include
using namespace std;
//使用者抽象介面
class iuser ;
//部門抽象介面
class idepartment ;
//access使用者
class caccessuser : public iuser
virtual void insertuser()
};
//access部門
class caccessdepartment : public idepartment
virtual void insertdepartment()
};
//sql使用者
class csqluser : public iuser
virtual void insertuser()
};
//sql部門類
class csqldepartment: public idepartment
virtual void insertdepartment()
};
//抽象工廠
class ifactory ;
//access工廠
class accessfactory : public ifactory
virtual idepartment* createdepartment()
};
//sql工廠
class sqlfactory : public ifactory
virtual idepartment* createdepartment()
};
//客戶端:
int main()
學習設計模式 原型設計模式
先想一下既然要建立新的例項,為什麼不直接使用 new 而要設計出乙個原型模式進行例項的複製呢?這是因為 有的時候,我們也會在不指定類名的前提下生成例項,例如像圖形編輯器中拖動現有的模型工具製作圖形的例項,這種是非常典型的生成例項的過程太過複雜,很難根據類來生成例項場景,因此需要根據現有的例項來生成新...
設計模式學習
知道設計模式已經很久了,但是一直沒有認真的去系統的學習,這幾天才開始逐漸的學習起來。下面是我學習設計模式的一些心得。要想成為一名優秀的軟體設計師或軟體架構設計師,了解一些設計模式是很有必要的。我認為學習設計模式的思路如下 一 基本概念 理解物件導向 理解重用等概念性的東西 1.什麼是物件導向?2.物...
設計模式學習
所有的設計模式都是為了解決變化的問題,通過一定的模式來應對變化,變化應對的原則是開放封閉原則,對修改封閉,對擴充套件開放。為了應對變化,就會新增相應的層次,層次越多,的顆粒就越小,那麼 就越複雜。所以設計時考慮變化和複雜之間的取捨,為了應對變化 需要使用模式,但是又不可以一味應用模式,導致 太複雜。...