3. Factory Method

6814 단어 factory
using System;

using System.Reflection;



namespace ConsoleApplication1

{

    class Program

    {

        static void Main(string[] args)

        {

            //

            FactoryCreate _factorycreate = new YaJiaFactoryCreate();

            Food _food = _factorycreate.Create();

            _food.MakeFood();



            //             

            FactoryCreate _factorycreate2;

            _factorycreate2 = (FactoryCreate)Assembly.Load("ConsoleApplication1").CreateInstance("ConsoleApplication1." + "YaBoFactoryCreate");

            Food _food2 = _factorycreate2.Create();

            _food2.MakeFood();

        }

    }



    /// <summary>

    ///         

    /// </summary>

    public abstract class Food

    {

        /// <summary>

        ///     

        /// </summary>

        public abstract void MakeFood();

    }



    /// <summary>

    ///         

    /// </summary>

    public abstract class FactoryCreate

    {

        public abstract Food Create();

    }



    /// <summary>

    ///     

    /// </summary>

    public class YaBoFactoryCreate : FactoryCreate

    {

        public override Food Create()

        {

            return new YaBo();

        }

    }



    /// <summary>

    ///     

    /// </summary>

    public class YaJiaFactoryCreate : FactoryCreate

    {

        public override Food Create()

        {

            return new YaJia();

        }

    }



    /// <summary>

    ///     

    /// </summary>

    public class YaBo : Food

    {

        public override void MakeFood()

        {

            Console.WriteLine("  ");

            Console.ReadLine();

        }

    }



    /// <summary>

    ///     

    /// </summary>

    public class YaJia : Food

    {

        public override void MakeFood()

        {

            Console.WriteLine("  ");

            Console.ReadLine();

        }

    }

}

좋은 웹페이지 즐겨찾기