抽象工廠模式 比工廠模式具有更高層次的抽象性,當要返回一系列相關類中的某一格,而對每個類都能根據需要返回不同的物件時候,這種模式就派上了用場。換言之,抽象工廠是乙個工廠物件。它能返回一系列相關類中的某一格,可以用簡單工廠決定哪乙個類。
下面這個例子作為抽象工廠模式的例子,希望能跟大家一起分享一起進步。
如果我們接到這樣乙個任務,讓我們來設計乙個花園,通常我們會先大概了解這個花園的主題是什麼呢,是水果型花園,還是蔬菜型花園,或者花卉型花園呢?知道這些,接下來我們就會具體考慮花園各個部位種植什麼,使得我們的花園層次分明,凸現我們設計者的個性,為了簡化問題,我們不凡假設花園總分三部位,中間部位,邊緣部位,陰涼部位。了解了這些任務需求,那我們就動手寫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 時,...