Maison >développement back-end >Tutoriel C#.Net >Modèle d'usine de modèles de conception C#

Modèle d'usine de modèles de conception C#

黄舟
黄舟original
2017-03-02 13:12:031176parcourir

Encapsuler la création d'objets

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




}

Ce qui précède est le contenu du modèle d'usine des modèles de conception C#. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois. (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn