首页 > 学院 > 开发设计 > 正文

设计模式之简单工厂

2019-11-17 02:45:06
字体:
来源:转载
供稿:网友

设计模式之简单工厂

一、定义简单工厂其实不是一个设计模式,反而比较像是一种编程习惯。

二、类图

三、示例

/// <summary>/// 披萨商店/// </summary>public class PizzaStore{public PizzaStore(){}public Pizza OrderPizza(string type){Pizza pizza;pizza = SimplePizzaFactory.CreatePizza(type);pizza.PRepare();pizza.Bake();pizza.Cut();pizza.Box();return pizza;}}/// <summary>/// 披萨工厂/// </summary>public static class SimplePizzaFactory{public static Pizza CreatePizza(string type){Pizza pizza = null;if (type.Equals("cheese")){pizza = new CheesePizza();}else if (type.Equals("pepperoni")){pizza = new Pepperonipizza();}return pizza;}}/// <summary>/// 抽象披萨/// </summary>public abstract class Pizza{public abstract void Prepare();public abstract void Bake();public abstract void Cut();public abstract void Box();}/// <summary>/// 芝士披萨/// </summary>public class CheesePizza:Pizza{public override void Prepare(){Console.WriteLine("准备芝士披萨");}public override void Bake(){Console.WriteLine("烘培芝士披萨");}public override void Cut(){Console.WriteLine("切芝士披萨");}public override void Box(){Console.WriteLine("打包芝士披萨");}}/// <summary>/// 意大利香肠披萨/// </summary>public class PepperoniPizza:Pizza{public override void Prepare(){Console.WriteLine("准备意大利香肠披萨");}public override void Bake(){Console.WriteLine("烘培意大利香肠披萨");}public override void Cut(){Console.WriteLine("切意大利香肠披萨");}public override void Box(){Console.WriteLine("打包意大利香肠披萨");}}static void Main(string[] args){PizzaStore pizzaStore = new PizzaStore();Pizza pizza = pizzaStore.OrderPizza("cheese");Console.ReadLine();}

源码下载

转载请注明来自:闪闪的幸运星

原文地址:http://www.VEVb.com/dongyang

如若转载,请保留原文地址。谢谢合作。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表