简单工厂模式(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 abstractclass Operation

{

    public int numberA;

    public int numberB;

    public abstract int GetResult();

}

///<summary>

///加法操作

///</summary>

public classAddOperation : Operation

{

    public override int GetResult()

    {

       return (this.numberA +this.numberB);

    }

}

///<summary>

///减法操作

///</summary>

public classSubOperation : Operation

{

    public override int GetResult()

    {

        return (this.numberA -this.numberB);

    }

}

 

2、简单工厂类SimpleFactory

///<summary>

///简单工厂类

///</summary>

public classSimpleFactory

{

    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

如果你认为此文章有用,请点击底端的【推荐】让其他人也了解此文章,

你也可以加我的新浪微博,以便实时了解我的动态:http://weibo.com/ywqu

WOWO英语(英语培训学校):http://www.wowomandarin.com   上海电子商务解决方案:http://www.hello36.com

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值