天天看點

Net設計模式執行個體之簡單工廠模式(Simple Factory Pattern)

       簡單工廠模式(Simple Factory Pattern)的優點是,工廠類中包含了必要的邏輯判斷,根據用戶端的選擇條件動态執行個體化相關的類,對于用戶端來說,去除了與具體産品的依賴

       客戶執行個體化對象時不需要關心該對象是由哪個子類執行個體化的。

Net設計模式執行個體之簡單工廠模式(Simple Factory Pattern)

IProduct接口:抽象産品類

ConcreteProduct類:産品類的具體實作

Simple Factory簡單工廠類

一個簡單電腦,具有簡單的加操作和減操作。結構如下圖所示

Net設計模式執行個體之簡單工廠模式(Simple Factory Pattern)

SimpleFactory:簡單工廠類。

Operation:抽象操作類

AddOperation:加法操作

SubOperation:減法操作

1、抽象操作類Operation,及其具體實作類AddOperation、SubOperation

/// <summary>

/// 抽象操作類

/// </summary>

public abstract class Operation

{

    public int numberA;

    public int numberB;

    public abstract int GetResult();

}

/// 加法操作

public class AddOperation : Operation

    public override int GetResult()

    {

       return (this.numberA + this.numberB);

    }

/// 減法操作

public class SubOperation : Operation

        return (this.numberA - this.numberB);

2、簡單工廠類SimpleFactory

/// 簡單工廠類

public class SimpleFactory

    public static Operation CreateOperation(string operation)

        Operation o = null;

        switch (operation)

        {

            case "+":

                o = new AddOperation();

                break;

            case "-":

                o = new SubOperation();

        }

        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();

Net設計模式執行個體之簡單工廠模式(Simple Factory Pattern)

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

本文轉自靈動生活部落格園部落格,原文連結:http://www.cnblogs.com/ywqu/archive/2010/01/06/1640026.html,如需轉載請自行聯系原作者

繼續閱讀