工廠模式與虛函式

2021-06-21 06:48:29 字數 1815 閱讀 9453

/// ****** 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...