C# 設計模式之 原廠模式

來源:互聯網
上載者:User
把建立對象的事情 封裝起來

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace DesignPytternDemo{    /// <summary>    /// 簡單工廠    /// </summary>    public interface IFood    {         int Price { get; }    }    public class Orange : IFood    {        public Orange()        {            Console.WriteLine("orange created");        }        public int Price        {            get            {                return 1;            }        }    }    public class Rice : IFood    {        public Rice()        {            Console.WriteLine("rice created");        }        public int Price        {            get            {                return 3;            }        }    }    public static class FoodFactory    {        public static IFood CreateFood(string foodType)        {            IFood f = null;            switch (foodType)            {                case "o":                    f = new Orange();                    break;                case "r":                    f = new Rice();                    break;                default:                    break;            }            return f;        }    }    /// <summary>    /// 抽象工廠    /// </summary>    public interface IActionGame    {    }    public class Kof : IActionGame    {        public Kof()        {            Console.WriteLine("Kof created");        }    }    public class War3 : IActionGame    {        public War3()        {            Console.WriteLine("War3 created");        }    }    public class Cs : IActionGame    {        public Cs()        {            Console.WriteLine("Cs created");        }    }    public interface IRPG    {    }    public class menghuan : IRPG    {        public menghuan()        {            Console.WriteLine("menghuan created");        }    }    public class Legend : IRPG    {        public Legend()        {            Console.WriteLine("Legend created");        }    }    public class Diablo : IRPG    {        public Diablo()        {            Console.WriteLine("Diablo created");        }    }    public abstract class GameFactory    {        public abstract IActionGame CreateActionGame();        public abstract IRPG CreateRpgGame();    }    public class MyGameFactory : GameFactory    {        public override IActionGame CreateActionGame()        {            return new Kof();        }        public override IRPG CreateRpgGame()        {            return new Legend();        }    }}

以上就是C# 設計模式之 原廠模式的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.