參考:
1、簡單工廠模式
在工廠類做判斷,從而建立相應的產品,當增加產品時需要修改工廠類。
//簡單工廠模式
//列舉
enum cartype;
//抽象類(多型:提高基類)
class car;
//具體類(產品1)
class bencicar:public car
2、工廠方法模式抽象工廠類,只提供乙個介面,通過子類去擴充套件和實現
#include #include #include using namespace std;
//工廠方法模式
//抽象類(多型:提高基類)
class car;
//具體類(產品1)
class bencicar:public car
3、抽象工廠模式當存在多個產品系列,而客戶端只使用乙個系列的產品時(選擇普通產品還是高配產品),可以考慮使用抽象工廠模式。缺點:當增加乙個新系列的產品時,不僅需要現實具體的產品類,還需要增加乙個新的建立介面,擴充套件相對困難。
#include #include #include using namespace std;
//工廠方法模式
//抽象類(多型:提高基類)
class car;
class highcar;
//具體類(產品1)
class bencicar:public car
面試準備 設計模式
乙個類只有乙個例項物件,將類的建構函式 拷貝建構函式 賦值操作符函式設為私有,並且通過介面獲取唯一例項。為什麼要用static,因為這乙個例項物件要起到全域性的作用,static將物件存在全域性變數區,生命週期伴隨整個程式。在類載入的時候不初始化,等到需要的時候,才建立物件,這是一種時間換空間的方式...
面試準備c (二)
stl容器和底部原理 二倍增長的動態陣列,線性連續空間,有容量限制。每次擴大到二倍時要重置所有迭代器,開銷很大 deque 雙端佇列 雙向開口的儲存空間分段連續的資料結構,每段資料空間內部是連續的,而每段資料空間之間則不一定連續 正因為段之間不連續,所以他整體也是不連續的,不用擔心容量問題 list...
C 面試準備 二
gcc 和 g 的區別 gcc與g 都是gnu 組織 的乙個編譯器。gcc與g 都可以編譯c 與c 但是 字尾為.c的,gcc把它當做c程式,而g 當做是c 程式 字尾為.cpp的,兩者都會認為是c 程式。編譯階段,g 會呼叫gcc,對於c 兩者是等價的,但是因為gcc命令不能自動和c 程式使用的庫...