C 設計模式之抽象工廠模式

2021-04-13 13:41:55 字數 1349 閱讀 3656

抽象工廠模式 比工廠模式具有更高層次的抽象性,當要返回一系列相關類中的某一格,而對每個類都能根據需要返回不同的物件時候,這種模式就派上了用場。換言之,抽象工廠是乙個工廠物件。它能返回一系列相關類中的某一格,可以用簡單工廠決定哪乙個類。

下面這個例子作為抽象工廠模式的例子,希望能跟大家一起分享一起進步。

如果我們接到這樣乙個任務,讓我們來設計乙個花園,通常我們會先大概了解這個花園的主題是什麼呢,是水果型花園,還是蔬菜型花園,或者花卉型花園呢?知道這些,接下來我們就會具體考慮花園各個部位種植什麼,使得我們的花園層次分明,凸現我們設計者的個性,為了簡化問題,我們不凡假設花園總分三部位,中間部位,邊緣部位,陰涼部位。了解了這些任務需求,那我們就動手寫code吧。

第一步:第二步:

//定義植物類

public

class plant

public

string getname()

} //

定義花園類

public

class garden

public

void setshade(label lb)

public

void setborder(label lb)

public

string getresult()

}第三步: //

花園類的派生類蔬菜型花園

public

class veggiegarden:garden}//

花園類的派生類水果型花園

public

class fruitgarden:garden}//

花園類的派生類花卉型花園

public

class flowergarden:garden

}第四步:按鈕事件使用抽象工廠模式

private

void button6_click(object sender, system.eventargs e)

else

if(opflowergarden.checked)

else

if(ckborder.checked)

garden.setborder(lbgardenresult);

if(ckcenter.checked)

garden.setcenter(lbgardenresult);

if(ckshade.checked)

garden.setshade(lbgardenresult); }

結果顯示:

c 設計模式之 抽象工廠模式

概念 抽象工廠模式提供了乙個建立相似或相關相互依賴的物件,而不需要說明其具體的實現.類結構圖 圖來自 wiki 示例 include class button class winbutton public button class macbutton public button class scro...

C 設計模式之抽象工廠模式

在 c 設計模式之工廠方法模式 一文中我們提到,由於簡單工廠模式當中的工廠類職責過重,嚴重違反了單一職責的原則,導致系統擴充套件十分困難,於是引出了工廠方法模式,工廠方法模式引入抽象的工廠類,具體的建立工作推遲到每個具體的工廠類中,這樣每個具體工廠類只負責一種產品的建立,這樣每個具體工廠類的職責就足...

C 設計模式之抽象工廠模式

之前講到了c 設計模式 工廠方法模式,我們可能會想到,後期產品會越來越多了,建立的工廠也會越來越多,工廠進行了增長,工廠變的凌亂而難於管理 由於工廠方法模式建立的物件都是繼承於product的,所以工廠方法模式中,每個工廠只能建立單一種類的產品,當需要生產一種全新的產品 不繼承自product 時,...