Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Entwurfsmuster-Fabrikmuster

C#-Entwurfsmuster-Fabrikmuster

黄舟
黄舟Original
2017-03-02 13:12:031163Durchsuche

Kapseln Sie die Erstellung von Objekten

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();
        }
    }




}

Das Obige ist der Inhalt des Fabrikmusters von C#-Entwurfsmustern. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn