PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

C# 设计模式之 工厂模式

黄舟
黄舟 原创
2017-03-02 13:12:03 883浏览

把创建对象的事情 封装起来

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中文网(m.sbmmt.com)!


声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。