工廠模式使用的頻率非常高,我們在開發中總能見到它們的身影。即定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類,工廠方法使乙個類的例項化延遲到其子類。我採用飲料工廠生產飲料舉例來講解:
第一步:工廠要生產飲料 首先幾乎所有的飲料都會加水加糖,我們抽象乙個類來表示
public abstract class
beverage
/** * 不同型別的飲料所具有的獨特的方法
*/public abstract void
method2()
;}
第二步:我們要生產可口可樂和橙汁這兩種飲料,我們來定義它們的方法:
/**
* 可口可樂
*/public
class
cocacola
extends
beverage
}/**
* 橙汁
*/public
class
orangejuice
extends
beverage
}
第三步:抽象工廠類負責定義產品物件的產生,**如下。
/**
* 飲料工廠
*/public abstract class
beveragefactory
第四步:採用泛型的方式,傳入的物件必須是beverage抽象類的實現類。具體如何產生乙個飲料的物件,是由具體工廠類實現的,具體工廠類繼承這個抽象工廠類。
/**
* 飲料生產商
*/public
class
beveragecreator
extends
beveragefactory
catch
(exception e)
return
null;}
}
通過這樣的設計,我們就可以在測試類中隨意生產產品了,看下面的測試類。
public
class
factorymodeltest
}
執行結果如下:
我想喝可樂
開始生產 新增飲用水,新增糖精...
新增黑色素...
生產了一瓶可樂
我想喝橙汁
開始生產 新增飲用水,新增糖精...
新增橙黃色色素...
生產了一瓶橙汁
恭喜你!學會了工廠模式!喜歡的關注一波啦~~ java設計模式 工廠模式
工廠模式 存在的目的 定義乙個用於建立複雜類的物件的介面。使用工廠模式,降低了類與類之間的耦合關係。分為三種實現方式 類之間的繼承結構不同 簡單工廠模式 工廠方法模式 抽象工廠模式。主要涉及的三種類 呼叫工廠的類,工廠類,產品類。先看乙個不適用工廠模式的類組織 class bmw32 class b...
JAVA設計模式 工廠模式
一 簡單工廠。它的缺點很明顯,當需要再新增乙個whitehuman類時,需要在工廠類中修改,則 的耦合性很高。建立需要用工廠new的class public inte ce human public class blackhuman implements human public class yel...
java設計模式 工廠模式
靜態工廠模式 為了建立物件而產生 1 有工廠類,有乙個可以根據需求返回建立的物件的方法 2 工廠類中的產生物件的方法的返回值型別是 父類的型別,產生的物件都是子類物件 3 強調 工廠類中的方法的返回值和返回的物件中存在著向上轉型的關係 public class cloth public class ...