一、定義
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
二、優點
良好的封裝性,**結構清晰,擴充套件性非常優秀,遮蔽產品類,產品類的呼叫不影響呼叫者。
三、故事繼續(**示例)
這天一大早,李實名就把空明,曹草,黑子都叫來辦公室,剛一進門,李實名就說到:
「近來很忙吧?」
「還好,還好....."誰敢說忙啊?!想被炒魷魚啊.....
「最近我們酒樓的整體差不多了,但是主要的是 我們做什麼菜呢?你們也知道中華美食太大,很難選擇..」
「我們應該選擇乙個或者兩個菜系主打,其他的先放一放......」空明說道。
「沒錯,我們也是這樣想的......」曹草趕緊插一句,同時望了一眼空明。
「那我們做哪種菜系呢?黑子你說。」
「我覺得,現在主流的菜系很多,我們不可能一一做到,不如川菜和粵菜好了?!」
「哦,你們兩個呢,覺得黑子說的怎麼樣?」
「好好,好啊.....」兩個傢伙忙不迭的說道。
「ok,就這麼說定了!哈哈哈......黑子,這段時間你得多操點心啊?」
「沒問題!」
於是這酒樓就選擇了粵菜和川菜兩大菜系做為主打,那要怎麼生產呢?這可夠黑子頭疼的...
首先,菜是產品,廚房是「工廠」,於是我們選擇工廠模式(其他的也行)
1 產品的抽象類(就是 菜)
2 川菜 抽象菜的實現類1
3 粵菜 抽象菜的實現類2
4 廚房 在這裡做菜
5 場景類 生產過程
大功告成,黑子很開心,他叫來李實名和兩位同僚,一起視察廚房:
...........第一種菜系..........
這是粵菜,甜到要死!
...........第二種菜系..........
這是川菜,辣的要死!
成功了,李實名覺得很滿意:
「幹得好,黑子!」
「****....您領導的好才是....」
這是空明臉色陰鬱,說道:
「boss,現代人中有許多人,他們不吃葷菜,他們說什麼 『田園生活』 ,我們可不可以在川菜和粵菜中都區分出葷菜和素菜呢?」說完,深深地看了黑子一眼。
「mmd......」黑子心想,不過嘴上還是說「多謝空總管提醒,我試試吧」
黑子能不能成功呢?下次再講.........................
.
李實名的現代生活 之抽象工廠模式
一 定義 為建立一組相關或者相互依賴的物件提供乙個介面而無需指定他們的具體類。二 優點 封裝性很好,每個產品的實現類不是高層模組所需要關心的,產品內部的約束不予要被上層模組所知道。三 缺點 擴充套件性不好 四 故事繼續 示例 小黑心中那個恨啊,這該死的空明,陰我!但話雖這麼說,但是boss也發話了,...
李實名的現代生活 之組合模式
一 定義 將物件組合成樹形結構以表示 部分 整體 的層次結構,使得使用者對單個物件和組合的使用具有一致性。二 優點 高層模組呼叫簡單,子節點增加方便 三 故事開始 示例 李實名要開餐館,地點和房子都選好了,可是人手還不夠,於是李實名開始著手尋攬著一些好的下屬,經過幾天的尋找,人手終於被他全部找到了,...
李實名的現代生活之 備忘錄模式
一 定義 在不破壞 封裝性的前提下,捕獲乙個物件的內部狀態,並在該物件之外儲存這個狀態 二 優點 1 有時一些發起人物件的內部資訊必須儲存在發起人物件以外的地方,但是必須要由發起人物件自己讀取,這時,使用備忘錄模式可以把複雜的發起人內部資訊對其他的物件遮蔽起來,從而可以恰當地保持封裝的邊界。2 本模...