簡單工廠模式
工廠模式中包含三個角色
工廠當使用者需要乙個a產品的時候,報給工廠。工廠便把a產品給於使用者。
抽象產品
抽象物件就是相當於乙個奧特曼模型,但是奧特曼有很多,艾斯,賽文都是奧特曼。但是把這些奧特曼整合起來就是一「奧特曼」
這一共有的名稱,或者說具有這個能力的都是「奧特曼」
具體產品
上面說到奧特曼是乙個抽象出來的「產品」。那麼艾斯奧特曼就是具體到唯一。當打怪獸的時候,需要艾斯的時候。就要向總部(工程)
傳送帶艾斯的資訊。總部就會讓艾斯出來打怪獸
下面使用**來說明(抽象產品為收銀機收費;具體產品為正常收費 打折收費 滿300反50)
抽象產品類:收費共有兩個功能 收錢和找錢
public abstract class abstractcashsuper
public void setnumber(double number)
public abstract double acceptcash();
}具體產品(打折) 打折類繼承了收銀機類 同樣具有收錢和找錢的功能
public class discount extends abstractcashsuper
@override
public double acceptcash()
}-----其他兩個類就略
為了和工廠做乙個對比,寫乙個工具類 在使用不同的功能的時候 只需要傳入使用的名再在switch中就可以拿到這個物件
public class cashsuperutiles
return abstractcashsuper;}
}在main函式中
abstractcashsuper 打八折 = cashsuperutiles.oper("打八折");
打八折.setnumber(456);
double number = 打八折.acceptcash();
system.out.println(number+"");
通過傳入所對應的名稱拿到物件,而這物件的功能是是子類繼承了父類所共有的
這樣便能使用功能的功能。不管是什麼獨有的功能,但我們只需要共有的功能就可以
如果說我們只需要共有的功能,那麼可以製造乙個盒子。把所需要的產品丟入這個盒子裡,而盒子拿到具體的產品之後就能
有它的獨有功能,而外部看到的確實共有功能
public class contentsuperutils
public void setmengey(double number)
public double getmengey()
}main方法
contentsuperutils abstractcashsuper = new contentsuperutils(new discount(0.8));
abstractcashsuper.setmengey(456);
double mengey = abstractcashsuper.getmengey();
system.out.println(mengey+"");
再用奧特曼的例子來說的話
contentsuperutils-----總部
abstractcashsuper-----奧特曼
discount----艾斯奧特曼
艾斯奧特曼有奧特曼打怪獸的功能,奧特曼有很多也都在總部。
現在想總部要艾斯奧特曼讓他使用奧特曼共有功能打怪獸
工廠模式 簡單工廠
簡單工廠其實並不是乙個設計模式,反而比較像一種程式設計習慣。我個人的這樣總結簡單工廠 建立乙個類,封裝建立物件的 故事 現在我要開一家披薩店,叫bbk 必敗客 披薩,賣很多種披薩 芝士披薩 榴蓮披薩等等,我有乙個orderpizza string type 方法,根據客戶傳來的type來提供不同的披...
工廠模式 簡單工廠
工廠 處理建立物件的細節。目的 將例項化具體類的 從應用中抽離,或者封裝起來,可以避免干擾應用的其他部分。簡單工廠 簡單工廠其實不是乙個設計模式,反而像一種程式設計習慣。產品實現 desc 產品a public inte ce a class a1 implements a override pub...
簡單工廠模式,工廠模式,抽象工廠模式
三種模式看了一天,記錄下自己的理解 headfirst,比薩店為例 1,簡單工廠模式 乙個具體的工廠類 pizzafactory 乙個抽象的產品類pizza,可以派生出多個具體的產品類 客戶 pizzastore類 工廠類 pizzafactory類關聯產品類pizza,工廠生產出不同型別的pizz...