如今比薩店成功的關鍵在於新鮮、高質量的原料,而且通過匯入新的框架,加盟點將遵循你的流程,但是有一些加盟店,使用低價原來來增加利潤。你必須採用一些手段,以免長此以往毀了品牌
確保原料一致,你打算建造一家生產原料的工廠,並將原料運送到各家加盟店。那麼問題來了,加盟店坐落於不同的區域,紐約的紅醬料和芝加哥的紅醬料是不一樣的。所以對於紐約和芝加哥你需要準備兩組不同的原料。
芝加哥比薩選單:
芝士披薩:番茄醬料,義大利白乾酪,parmesan乾酪,比薩草。
素食披薩:番茄醬料,義大利白乾酪,parmesan乾酪,茄子,菠菜,黑橄欖。
紐約比薩選單:
芝士披薩:大蒜番茄醬料,reggiano乾酪,大蒜。
素食披薩:大蒜番茄醬料,reggiano乾酪,蘑菇,洋蔥,紅辣椒。
這表明我們有相同的產品家族:麵糰,意式臘腸,醬料,芝士,蔬菜,肉。但是製作方式根據區域不同而有差異。
紐約使用一組原料,而芝加哥使用另一組原料。可能不久之後加州就有了加盟店,到時候又需要運送另外一組區域的原料,接著呢?西雅圖嗎?
想要行得通,必須先清楚如何處理原料家族。
一、首先建造原料工廠
/**
* 建造乙個原料工廠,它是乙個介面
* 這個工廠將負責建立原料家族中的每一種原料。
* @author administrator
* */
public inte***ce pizzaingredientfactory
二、建立紐約原料工廠
/**
* 建立紐約原料工廠
* @author administrator
* 同理,參照本來可以實現chicagopizzaingredientfactory
* */
public class nypizzaingredientfactory implements pizzaingredientfactory
@override
public sauce createsauce()
//以下其他的實現原料具體類,類似做法。
@override
public cheese createcheese()
@override
public veggies createveggies()
@override
public pepperoni createpepperoni()
@override
public clams createclam()
}
三、重做披薩
public abstract class pizza
void cut()
void box()
public string getname()
public void setname(string name)
public string tostring()
}
四、例項化具體的披薩
/**
* 具體的披薩--芝士披薩
* @author administrator
* 同理,可實現其他具體披薩
* */
public class cheesepizza extends pizza
@override
void prepare()
}
**
* 蛤俐披薩
* @author administrator
* */
public class clampizza extends pizza
/*** pizza的**利用相關的工廠生產原料,所生產的原料依賴所使用的工廠,
* pizza類根本不關心這些原料,它只知道如何製作披薩
*/@override
void prepare()
}
五、再回到披薩店
**
* 披薩店超類
* @author administrator
* */
public abstract class pizzastore
abstract pizza createpize(string type);
}
/**
* 具體的披薩店。
* 當然其他的披薩店也可以參照這個來實現
* @author administrator
* */
public class nypizzastore extends pizzastore else if ("clam".equals(type))
// ....此處省略
return pizza;
}}
六、原料和一些具體的原料。其他的就不貼**了
總結:工廠模式----定義了乙個建立物件的介面,但由子類決定要例項化的類是哪乙個。工廠方法讓類把例項化推遲到子類。
設計原則:依賴抽象,不要依賴具體類。
抽象工廠模式 抽象工廠模式
抽象工廠模式其實是圍繞了乙個超級工廠建立其他的工廠 可參考工廠模式 這個超級工廠又可以想像成是其他工廠的工廠,這種設計模式是一種建立型模式。在抽象工廠模式中,介面是負責建立乙個相關物件的工廠,不需要顯式指出其類。每個生成的工廠都能按照工廠模式提供物件。意圖提供乙個建立一系列相關或相互依賴物件的介面,...
工廠模式 抽象工廠模式
這裡使用簡單的話來講解工廠模式,不涉及程式設計 什麼是工廠模式呢?我的理解是對抽象介面例項的封裝。假如有乙個介面,有若干的實現類,代表不同的例項。傳統產生物件的方法是直接new乙個出來,對於每個例項都要new,當實現介面的類較多時會很麻煩,並且類的實現也暴露出來了。工廠模式是一種產生物件的模式,使用...
工廠模式 抽象工廠模式
子類父類代換 場景 在不同的條件下,需要建立不同的實現子類時。如網路通訊可以使用tcp udp。可以實現同乙個介面,通過工廠類根據條件 tcp或udp 來例項化不同的子類。這些子類符合黎克特制代換原則。public inte ce tlprotocol public class tcpimpleme...