程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 設計模式之簡單工廠,設計模式工廠

設計模式之簡單工廠,設計模式工廠

編輯:C#入門知識

設計模式之簡單工廠,設計模式工廠


一、定義
簡單工廠其實不是一個設計模式,反而比較像是一種編程習慣。

二、類圖

三、示例

/// <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.cnblogs.com/dongyang

如若轉載,請保留原文地址。謝謝合作。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved