/// ****** factoty 簡單工廠模式
#include using namespace std;
class product
virtual ~product() {} // 因為有虛方法,析構函式最好宣告為virtual
virtual string who() const {} // 虛函式,重寫後用來表示派生類身份
};class iphone : public product
virtual ~iphone() {}
virtual string who() const
};class ipad : public product
virtual ~ipad() {}
virtual string who() const
};class ipod : public product
virtual ~ipod() {}
virtual string who() const
};class ******factory
~******factory() {}
product* createproduct(string proname);
};product* ******factory::createproduct(string proname)
int main(int argc, char* argv)
/// 優點:外界只要傳入類的名字或者識別符即可,不需要關心具體建立過程,只顧「消費」就可以了。
/// 各有各的指責和權力,分工明確,利於整個軟體架構優化。
/// 缺點:違反裡高內聚責任分配原則,將全部邏輯放到乙個工廠類中,如果需要支援新的類,那就必須改變工廠類了。
/// 這裡只有一種工廠,乙個系列的產品,那如果有多個系列的產品呢?問題如何解決?
我所理解的設計模式(c++實現)——簡單工廠模式(****** factory pattern)
/// factory method pattern 工廠方法模式
#include using namespace std;
class product
virtual ~product() {}
virtual string who() const {}
};class iphone : public product
virtual ~iphone() {}
virtual string who() const
};class ipad : public product
virtual ~ipad() {}
virtual string who() const
};class factory
virtual ~factory() {}
virtual product* getproduct() const {}
};class iphonefac:public factory
virtual ~iphonefac() {}
virtual product* getproduct() const
};class ipadfac:public factory
virtual ~ipadfac() {}
virtual product* getproduct() const
};int main(int argc, char* argv)
我所理解的設計模式(c++實現)——工廠方法模式(factory method pattern)
工廠模式與建構函式模式
簡單工廠模式 以object建構函式或字面量的方式建立物件有著重複性,會產生大量重複 的缺陷,由此,便出現了工廠模式。function createobj name,age var obj1 createobj 小明 66 var obj2 createobj 小白 13 console.log o...
工廠模式與抽象工廠模式
原始出處 作者資訊和本宣告。否則將追究法律責任。工廠模式與抽象工廠模式,相信同行不會陌生 在網上及相關書裡面也看過這方面的介紹 推薦這兩本書 steven john metsker s design patterns in c 和 gof s design pattern framework2.0 ...
工廠模式與抽象工廠模式
1 工廠模式 定義了一組建立物件的介面,但是由子類決定要例項化的類是哪乙個。工廠方法把類的例項化推遲到子類中。現在考慮有pizzastore有一些子類 加盟店 他們有可能對pizza的做法進行一些改良,即createpizza方法需要公升級。工廠方法的做法是,在基類中建立乙個形為abstract p...