網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了平魯免費建站歡迎大家使用!
設(shè)計模式之工廠模式一簡單工廠模式
工廠模式由來:
在我們創(chuàng)建對象的時候使用,使用new操作的。如果多個對象創(chuàng)建都使用new會。所以工廠模式就是用來代理new操作的一種模式。根據(jù)工廠模式由來,我們可以看出工廠模式屬于創(chuàng)建型模式。提供一種創(chuàng)建對象的最佳方式。
來源:凱哥Java(kaigejava)
工廠模式主要的分類:
簡單工廠模式、工廠方法模式、抽象工廠模式
簡單工廠模式:
簡單工廠模式不屬于23中設(shè)計模式。又叫做靜態(tài)工廠方法,簡單工廠模式是工廠模式家族中最簡單使用的一種模式。也可以理解為不同工廠模式的一個特殊實現(xiàn)。
如何理解?
舉例:一個工廠類,一個產(chǎn)品的抽象類。
現(xiàn)實生活舉例:一個面館,可以生產(chǎn)多中面條。
如:面館里面可以做的西紅柿雞蛋面、牛肉拉面、刀削面、哨子面、biangbiang面及熱干面。
我們就來模擬這種場景:
我們先來看項目結(jié)構(gòu):
說明:
1:面條接口類
2:具體面條實現(xiàn)類
3:簡單工廠類(面館對象)
4:測試類型
我們先來看看面條接口類:
INoodlesInterface
我們在來看看,面條具體實現(xiàn)類--西紅柿雞蛋面類對象里面:
public class?TomatoAndEggNoodles?implements?INoodlesInterface {
? ?private?String?noodlesName;
? ?public?TomatoAndEggNoodles(){}
? ?public?TomatoAndEggNoodles(String noodlesName){
? ? ? ?this.noodlesName?= noodlesName;
? ?}
? ?@Override
? ?public void?noodlesdescription() {
? ? ? ?System.out.println("大爺,您的"+this.noodlesName+"價格為:10元。");
? ?}
}
其他具體面條實現(xiàn)類里面類似。這里就不一一貼出來了。
我們來看看面館對象:
里面由三部分:
菜單部分、根據(jù)菜單序號制作面條、根據(jù)面條名稱制作面條。
我們來看看根據(jù)菜單序號制作面條的:
public ?static?INoodlesInterface makeNoodlesByMenuType(int?noodletType){
? ?switch?(noodletType){
? ? ? ?case?NOODLES_TYPE_1:
? ? ? ? ? ?return new?TomatoAndEggNoodles("西紅柿雞蛋面");
? ? ? ?case?NOODLES_TYPE_2:
? ? ? ? ? ?return new?HandPulledNoodleSoupWithBeef("牛肉拉面");
? ? ? ?case?NOODLES_TYPE_3:
? ? ? ? ? ?return new?HandPulledNoodleSoupWithBeef("刀削面");
? ? ? ?case?NOODLES_TYPE_4:
? ? ? ? ? ?return new?NoodleWithPork("哨子面");
? ? ? ?case?NOODLES_TYPE_5:
? ? ? ? ? ?return ?new?BiangBiangNoodles("biangbiang面");
? ? ? ?case?NOODLES_TYPE_6:
? ? ? ? ? ?return new?HotAndDryNoodles("熱干面");
? ? ? ?default:
? ? ? ? ? ?return ?new?HotAndDryNoodles("熱干面");
? ?}
}
另一個方法類似。
查看測試類:
查看運行結(jié)果:
運行結(jié)果,達到我們預期的。
現(xiàn)在我們來總結(jié)下簡單工廠模式:
簡單工廠模式幾個角色:
1:共有的抽象父類或者接口。如:司小司面館的面條接口對象
2:繼承或是實現(xiàn)該接口的具體子類。如:西紅柿雞蛋面、biangbiang面等
3:創(chuàng)建對象的簡單工廠類。如:司小司的面館
觸發(fā)事件:
通過菜單的序號或者是面條名稱觸發(fā)工廠類制作對象的。
在來看看簡單工廠模式特點:
通過一個類。是具體的類,并非接口或者抽象類的一個重要的創(chuàng)建方法,利用if判斷語句說著是switch語句來進行判斷,進而創(chuàng)建對應(yīng)的產(chǎn)品。
聯(lián)系凱哥--》凱哥Java(kaigejava)
個人博客:www.kaigejava.com
其中,這個重要的創(chuàng)建方法通常都是靜態(tài)的。所以,簡單工廠模式也被稱之為靜態(tài)工廠.
網(wǎng)站名稱:設(shè)計模式之工廠模式一簡單工廠模式
文章鏈接:http://aaarwkj.com/article32/gghepc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、網(wǎng)站設(shè)計、手機網(wǎng)站建設(shè)、App設(shè)計、微信小程序、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)