所属类别:.NET
文章作者:未知
特别推荐:免费发布信息 承包关键词~~抢爆了!HOT!
参考资料《java与模式》上面那本书上的例子举的是园丁和果园的例子,学习设计模式最好在生活中自己找个例子实践一下,下面是我自己的一个例子,是讲快餐店的例子,快餐店提供很多食物,比如面条,米饭,面包。首先定义了一个Food接口,然后这些食物都从它来继承,定义了一个大厨他包办所有食物的制作工作,这就是我所理解的简单工厂模式的概念,下面是源代码:using System;namespace SimpleFactoryPattern{/// /// 简单工厂模式示例/// class SimpleFactoryPattern{//定义Food接口public interface Food{//烹饪void Cook();//卖出void Sell();} //Noodlepublic class Noodle:Food{public Noodle(){Console.WriteLine("\nThe Noodle is made..");}private int price;//面条Noodle的Cook方法接口实现public void Cook(){Console.WriteLine("\nNoodle is cooking...");}//面条Noodle的Sell方法接口实现public void Sell(){Console.WriteLine("\nNoodle has been sold...");}public int Price{get{return this.price;}set{price=value;}}}//Ricepublic class Rice:Food{public Rice(){Console.WriteLine("\nThe Rice is made ..");}private int price;public void Cook(){Console.WriteLine("\nRice is cooking...");}public void Sell(){Console.WriteLine("\nRice has been sold...");}public int Price{get{return this.price;}set{price=value;}}}//Breadpublic class Bread:Food{public Bread(){Console.WriteLine("\nThe Bread is made....");}private int price;public void Cook(){Console.WriteLine("\nBread is cooking...");}public void Sell(){Console.WriteLine("\nBread has been sold...");}public int Price{get{return this.price;}set{price=value;}}}//定义大厨,他包办这个快餐店里的所有Food,包括面条,面包和米饭class Chef{public static Food MakeFood(string foodName){try{switch(foodName){case "noodle": return new Noodle();case "rice":return new Rice();case "bread":return new Bread();default:throw new BadFoodException("Bad food request!");}}catch(BadFoodException e){throw e;}}} //异常类,该餐馆没有的食品class BadFoodException: System.Exception{public BadFoodException(string strMsg){Console.WriteLine(strMsg);}}/// /// 应用程序的主入口点。/// [STAThread]static void Main(string[] args){Food food=Chef.MakeFood("bread");food.Cook();food.Sell();Console.ReadLine();}}}关闭本页
相关信息· 一个计算机高手的成长
· 我的实验之--8051流水灯实验改良版
· 利用Silverlight、WCF和AJAX开发企业应用
· mysql的字符串函数
64397
39952
