C#设计模式(2)简单工厂模式

来源:互联网 发布:日本聊天软件排名 编辑:程序博客网 时间:2024/06/06 02:19

C#设计模式(2)简单工厂模式


提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

一个系统要独立于它的产品的创建、组合和表示时。
一个系统要由多个产品系列中的一个来配置时。
当你要强调一系列相关的产品对象的设计以便进行联合使用时。
当你提供一个产品类库,而只想显示它们的接口而不是实现时。


    public class Customer    {                        public static Food Cook(string type)        {            Food food = null;            // 客户A说:我想吃西红柿炒蛋怎么办?            // 客户B说:那你就自己烧啊            // 客户A说: 好吧,那就自己做吧            if (type.Equals("西红柿炒蛋"))            {                food = new TomatoScrambledEggs();            }            // 我又想吃土豆肉丝, 这个还是得自己做            // 我觉得自己做好累哦,如果能有人帮我做就好了?            else if (type.Equals("土豆肉丝"))            {                food = new ShreddedPorkWithPotatoes();            }            return food;        }        static void Main(string[] args)        {            // 做西红柿炒蛋            Food food1 = Cook("西红柿炒蛋");            food1.Print();            Food food2 = Cook("土豆肉丝");            food2.Print();            Console.Read();        }    }     public abstract class Food    {        // 输出点了什么菜        public abstract void Print();    }        public class TomatoScrambledEggs : Food    {        public override void Print()        {            Console.WriteLine("一份西红柿炒蛋!");        }    }     public class ShreddedPorkWithPotatoes : Food    {        public override void Print()        {            Console.WriteLine("一份土豆肉丝");        }    }


0 0
原创粉丝点击