三、c語言實現簡單工廠模式
總結簡單工廠模式使用c++語言實現,主要使用了c++類的繼承特性。在c++當中,子類和基類的關係是"is a"的關係,子類物件的指標可以賦值給父類物件指標,我們在使用這個基類物件指標就可以操作這個新建立的類物件。這裡的例子是最簡單的例子,實際開發的時候,工廠類最好使用單例模式,乙個工廠生產各類產品。當然不用單例也可以,不同工廠生產不同系列的產品。一系列產品對映到c++,就是不同基類,同一基類代表同乙個系列。
#include
using namespace std;
class base_t
public:
string product_name;
int product_id;};
class product_a_t : public base_t };
class product_b_t : public base_t };
class factory_t }}
;//在需要建立物件的地方,我們可以這樣用
factory_t my_factory;
base_t* product_a_obj = my_factory.
create_product(1
);//product_a_obj->product_name == "a";
base_t* product_b_obj = my_factory.
create_product(2
);//product_b_obj->product_name == "b";
與c++不同,純c語言是沒有類的,也就沒有繼承特性。它是面向過程的,面向介面的,所以,工廠模式的實現主要依賴介面來實現。struct product_t
;product_t*
create_product
(int32_t product_id)
}// 使用的時候,直接呼叫介面create_product即可:
product_t* product_a =
create_product(1
);
簡單工廠模式是最簡單的一種工廠模式,它的目的是使用乙個介面來實現物件的生成,使用者不需要知道物件的建立方法,建立過程,只需要傳遞正確的引數給物件生成介面即可,使用簡單。簡單工廠模式的缺點就是,每新增一種產品,都得修改工廠類或介面的物件產生**,擴充套件性不太好,比較適合建立少量型別物件的時候使用,如果種類非常多,工廠介面將變得非常臃腫。 設計模式 工廠模式之簡單工廠模式
定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...
設計模式 工廠模式之簡單工廠
工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...
設計模式 工廠模式之簡單工廠
我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...