王小扣在早上 7 點準時床,第一件事情就是要做一頓早餐補充下能量。王小扣的早餐是乙個手抓餅(此處省略做手抓餅的簡單過程)自己做上自己吃,很美味。
**實現:
早餐可以包含的食物很多,我們抽象為 food 介面。
手抓餅是具體的產品,我們定義為 shouzhuabing 類。
public
class
oldtest
}
吃完早餐的王小摳正要去上班,這個時候剛剛睡醒的女票叫住了他:
「王小扣,我餓了。。」
「拜拜,我去上班了」
「王小扣,我要吃手抓餅!!」
「哦,那我再做乙個唄」
這個時候,王小摳意識到自己變成了乙個失去理智溫順善良的簡單工廠,女票和他要手抓餅他就立刻去做,不讓女票關心手抓餅如何去做。
**實現:
我們把王小摳抽象為乙個簡單工廠類 ******factory
把使喚工廠的女票抽象為類 ******factoryuser
// 定義簡單工廠類
public
class
******factory
elseif(
"其它食物。。。"
.equals
(foodname)
)return food;
}}
public
class
******factoryuser
}// 手抓餅被吃了!
可以看出簡單工廠的優點是,使用者可以直接從工廠中拿到想要的產品,而不用了解產品的生產過程。
由於 createfood 的修飾符為 static ,所以簡單工廠又叫靜態工廠。
日子一天天過去,王小摳的生活越來越痛苦了,因為女票吃膩了手抓餅,開始和王小摳要烤冷麵、雞蛋灌餅。。。
可是王小摳覺得做兩樣早餐有點費時間呀,又得早起十分鐘呢。
這個時候王小摳就幻想著能有乙個會做烤冷麵的分身,再來乙個會做雞蛋灌餅的分身,再來乙個。。。
這樣可以讓每個王小摳負責每種早餐的製作,我們想吃什麼只需要找相應的王小摳即可。
**實現:
每個分身王小摳都是乙個具體的工廠,他們都擁有製作早餐的方法。
這樣我們就可以定義乙個抽象介面 factory 和 抽象的工廠方法 createfood。
// 定義介面
public
inte***ce
factory
// 定義具體工廠類
public
class
kaolengmianfactory
implements
factory
}public
class
shouzhuabingfactory
implements
factory
}
// 使用
public
class
factorymethodtest
}// 烤冷麵被吃了!
// 手抓餅被吃了!
工廠方法可以看出是簡單工廠的公升級,簡單工廠把不同種類產品的建立都放到乙個類的乙個方法中。
現在我們將建立產品的工作放到不同類中,有多少產品就建立多少工廠,讓工廠的功能更加專一。
在獲取產品時,使用者需要指定具體的工廠,仍然有耦合,請忽略,使用工廠的目的是對產品建立工作的解耦。
分身太多,記不住呀能不能統一管理呀。
// 建立抽象工廠
public
abstract
class
abstractfactory
// 具體實現
public
class
factory
extends
abstractfactory
@override
food createkaolengmian()
}
// 使用
public
class
abstractfactoryuser
}
抽象工廠只需要獲取乙個工廠,通過工廠的不同方法就可以建立不同的產品。
新增產品時
靜態工廠需要修改**,增加 if 語句
工廠方法需要增加新的類,在使用處還需要 new 乙個新的工廠
抽象工廠需要在 abstractfactory 和 factory 中新增方法,還是用原來的 factory 去建立
以上只是說了抽象工廠可以對不同產品進行統一管理,和不同配方沒有多大聯絡。
想要實現不同配方,需要再建立幾個抽象工廠的實現類。
// 甜味的早餐
public
class
tianfactory
extends
abstractfactory
// 辣味的早餐
public
class
lafactory
extends
abstarctfactory
如果我們要吃甜味的,只要使用甜味工廠,建立出的所有產品都是甜味的
abstractfactory factory = new tianfactory()
;factory.create***
完整** 斧王其實活的很累
斧王本來是雙手持斧的,可生活所迫,他只能右手持斧 左手還得拿個先鋒盾。有時候,他還得在身上穿上危險的刃甲!這個動不動就長出一身刺的東西,稍不留神,可能先把自己給刺傷了。更糟糕的是,假如時間漫長,他可能必須穿上冷冰冰的希瓦。當你被希瓦凍傷時,你可曾想過,穿著它的斧王更是先從前胸涼到後胸?另外乙個技術性...
B站,終於活成了抖音的樣子
看到這裡,懂的人已經反應過來了,b站什麼時候變樣了?一切還要從它最近的內測改版說起。b站越來越像抖音了?左圖為出自宅舞區 右圖出自美妝區 然而,b站抖音化的擴散,主要還是歸因於從抖音趕來的劇情類創作者,它們在帶來豎屏 習慣的同時,也將平台的內容調性帶來了。2019年 朱一旦的枯燥生活 的豎屏短劇在抖...
小碼王王江有 應對疫情衝擊,小碼王如何轉危為機
10 月 29 日,由校寶程式設計客棧 主辦,支付寶 校長堡 睿藝 多鯨資本協辦的2020 see教育服務共建大會在杭州隆重開幕。大會以 破局新生 為主題,集結 學校 機構 產業 鏈等行業中間力量,邀請 100 餘位教培行業大咖及教育專家為行業發聲,共同剖析新形勢下的產業格局,探索未來教育服務行業的...