抽象工厂模式

来源:互联网 发布:CVI ibevent windows 编辑:程序博客网 时间:2024/06/03 13:36

麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用C#控制台应用程序实现这两个快餐店经营产品的抽象工厂模式。绘制该模式的UML图。




namespace shiyan3chouxianggongchang{    interface IHamburg    {        void product();    }    class McDonaldsHamburg : IHamburg    {        public void product()        {            Console.WriteLine("McDonald生产了一个Hamburg");        }    }    class KFCHamburg : IHamburg    {        public void product()        {            Console.WriteLine("KFC生产了一个Hamburg");        }    }    interface ICola    {        void product();    }    class McDonaldsCola : ICola    {        public void product()        {            Console.WriteLine("McDonald生产了一个Cola");        }    }    class KFCCola : ICola    {        public void product()        {            Console.WriteLine("KFC生产了一个Cola");        }    }    interface IFactory    {        IHamburg CreateHambuger();        ICola CreateCola();    }    class McDonaldsFactory : IFactory    {        public IHamburg CreateHambuger()        {            return new McDonaldsHamburg();        }        public ICola CreateCola()        {            return new McDonaldsCola();        }    }    class KFCFactory : IFactory    {        public IHamburg CreateHambuger()        {            return new KFCHamburg();        }        public ICola CreateCola()        {            return new KFCCola();        }    }    class Program    {        static void Main(string[] args)        {            IFactory factory = new McDonaldsFactory();            IHamburg ih = factory.CreateHambuger(); ih.product();            ICola ic = factory.CreateCola();ic.product();            IFactory factory2 = new KFCFactory();            IHamburg ih2 = factory2.CreateHambuger();ih2.product();            ICola ic2 = factory2.CreateCola(); ic2.product();                        //Console.Read();        }    }}



原创粉丝点击