簡單工廠模式

2021-09-14 02:21:54 字數 1713 閱讀 4318

簡單工廠模式

工廠模式中包含三個角色

工廠當使用者需要乙個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...