1. 程式人生 > >Net設計模式例項之簡單工廠模式(Simple Factory Pattern)

Net設計模式例項之簡單工廠模式(Simple Factory Pattern)

一、簡單工廠模式簡介(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)

簡單工廠模式是比較簡單的一種設計模式,本文對此模式的概念及其設計結構圖簡單地進行了描述,最後以一個計算器的例項進行了說明。