一、簡單工廠模式簡介(Bref Introduction)
簡單工廠模式(Simple Factory Pattern)的優點是,工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對於客戶端來說,去除了與具體產品的依賴
二、解決的問題(What To Solve)
客戶實例化對象時不需要關心該對象是由哪個子類實例化的。
三、簡單工廠模式分析(Analysis)
1、簡單工廠模式結構
IProduct接口:抽象產品類
ConcreteProduct類:產品類的具體實現
Simple Factory簡單工廠類
四.實例分析(Example)
1、場景
一個簡單計算器,具有簡單的加操作和減操作。結構如下圖所示
SimpleFactory:簡單工廠類。
Operation:抽象操作類
AddOperation:加法操作
SubOperation:減法操作
2、代碼
1、抽象操作類Operation,及其具體實現類AddOperation、SubOperation
/// <summary>
/// 抽象操作類
/// </summary>
public abstract class Operation
{
public int numberA;
public int numberB;
public abstract int GetResult();
}
/// <summary>
/// 加法操作
/// </summary>
public class AddOperation : Operation
{
public override int GetResult()
{
return (this.numberA + this.numberB);
}
}
/// <summary>
/// 減法操作
/// </summary>
public class SubOperation : Operation
{
public override int GetResult()
{
return (this.numberA - this.numberB);
}
}
2、簡單工廠類SimpleFactory
/// <summary>
/// 簡單工廠類
/// </summary>
public class SimpleFactory
{
public static Operation CreateOperation(string operation)
{
Operation o = null;
switch (operation)
{
case "+":
o = new AddOperation();
break;
case "-":
o = new SubOperation();
break;
}
return o;
}
}
3、客戶端代碼
static void Main(string[] args)
{
Operation operation1 = SimpleFactory.CreateOperation("+");
operation1.numberA = 10;
operation1.numberB = 20;
Console.WriteLine("{0}+{1}={2}", operation1.numberA, operation1.numberB, operation1.GetResult());
Operation operation2 = SimpleFactory.CreateOperation("-");
operation2.numberA = 10;
operation2.numberB = 20;
Console.WriteLine("{0}+{1}={2}", operation2.numberA, operation2.numberB, operation2.GetResult());
Console.Read();
}
3、實例運行結果
五、總結(Summary)
簡單工廠模式是比較簡單的一種設計模式,本文對此模式的概念及其設計結構圖簡單地進行了描述,最後以一個計算器的實例進行了說明。
出處:http://www.cnblogs.com/ywqu