王小摳活成了工廠的樣子

2021-10-05 23:58:43 字數 2792 閱讀 7623

王小扣在早上 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 餘位教培行業大咖及教育專家為行業發聲,共同剖析新形勢下的產業格局,探索未來教育服務行業的...