转工厂方法模式-想吃什么汉堡自己要
生活随笔
收集整理的這篇文章主要介紹了
转工厂方法模式-想吃什么汉堡自己要
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工廠方法模式比喻
請女生去麥當勞吃漢堡,不同的女生有不同的口味,要每個都記住是一件煩人的事情,我一般采用Factory Method-工廠方法模式,帶著女孩到服務員那兒,說“要一個漢堡”,具體要什么樣的漢堡呢,讓女生直接跟服務員說就行了。
工廠方法模式意圖
工廠方法模式(Factory Method),定義一個用于創建對象的接口,讓子類決定實例化哪一個類。工廠方法使一個類的實例化延遲到其子類。
??? /// 工廠方法模式中,提供不同的女孩不同的口味的漢堡,相當于我的職責
??? /// </summary>
??? interface IGirl
??? {
??????? IHamburg DemandHamburg();
??? } /// <summary>
??? /// 喜歡吃第一種漢堡的女孩
??? /// </summary>
??? class Girl1 : IGirl
??? {
??????? public IHamburg DemandHamburg()
??????? {
??????????? return new Hamburg1();
??????? }
??? } /// <summary>
??? /// 喜歡吃第二種漢堡的女孩
??? /// </summary>
??? class Girl2 : IGirl
??? {
??????? public IHamburg DemandHamburg()
??????? {
??????????? return new Hamburg2();
??????? }
??? } /// <summary>
??? /// 不同口味漢堡的抽象
??? /// </summary>
??? interface IHamburg
??? {
??????? void ImproveHamburg();
??? } /// <summary>
??? /// 第一種口味漢堡
??? /// </summary>
??? class Hamburg1 : IHamburg
??? {
??????? public void ImproveHamburg()
??????? {
??????????? Console.WriteLine("提供第一種口味女孩的漢堡");
??????? }
??? } /// <summary>
??? /// 第二種口味漢堡
??? /// </summary>
??? class Hamburg2 : IHamburg
??? {
??????? public void ImproveHamburg()
??????? {
??????????? Console.WriteLine("提供第二種口味女孩的漢堡");
??????? }
??? } /// <summary>
??? /// 工廠方法模式客戶端應用
??? /// </summary>
??? class Program
??? {
??????? static void Main(string[] args)
??????? {
??????????? //喜歡第一種口味漢堡的女孩子
??????????? IGirl girl = new Girl1(); //提供女生喜歡的漢堡
??????????? IHamburg hamburg=girl.DemandHamburg();
??????????? hamburg.ImproveHamburg(); Console.Read();
??????? }
??? } 工廠方法模式總結 我不再負責記住每個女孩想吃什么口味的漢堡了,而是將每個女孩想吃什么口味的漢堡交給她們自己去做。即系統中的核心工廠類不再負責所有產品的創建,而是將具體的創建工作交給子類,核心工廠類僅僅負責給出具體工廠類實現的接口,成為一個抽象工廠角色,而不接觸哪一個產品類應當被實例化的細節。
轉載于:https://www.cnblogs.com/superstar/archive/2011/12/28/2305276.html
總結
以上是生活随笔為你收集整理的转工厂方法模式-想吃什么汉堡自己要的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 程序员该怎么混
- 下一篇: js代码收集(1)_隐藏div、tabl