首頁  >  文章  >  後端開發  >  C# 設計模式之 工廠模式

C# 設計模式之 工廠模式

黄舟
黄舟原創
2017-03-02 13:12:031162瀏覽

把創建物件的事情 封裝起來

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# 設計模式之工廠模式的內容,更多相關內容請關注PHP中文網(www.php.cn) !


#
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn