一、简单工厂模式简介(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<?XML:NAMESPACE PREFIX = O />
/// <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 <?XML:NAMESPACE PREFIX = ST1 />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)

简单工厂模式是比较简单的一种设计模式,本文对此模式的概念及其设计结构图简单地进行了描述,最后以一个计算器的实例进行了说明。

转载于:https://blog.51cto.com/smartlife/258932

Net设计模式之简单工厂模式(Simple Factory Pattern)相关推荐

  1. Java设计模式之简单工厂模式(Simple Factory)

    [Java与模式]简单工厂模式(Simple Factory---吴义) 首先说明,Java与模式一系列的文章均是参考阎宏博士的<Java与模式>一书,加上自身的一些体会的探索,产生如下文 ...

  2. 简单工厂模式-Simple Factory Pattern 工厂三兄弟之简单工厂模式(四):图表库解决方案的改进,简单工厂模式的简化,简单工厂模式总结

    4 方案的改进 Sunny软件公司开发人员发现在创建具体Chart对象时,每更换一个Chart对象都需要修改客户端代码中静态工厂方法的参数,客户端代码将要重新编译,这对于客户端而言,违反了" ...

  3. 从零开始学设计模式(四):工厂模式(Factory Pattern)

    作者平台: | CSDN:blog.csdn.net/qq\_4115394- | 掘金:juejin.cn/user/651387- | 知乎:www.zhihu.com/people/1024- ...

  4. 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern)

    原文:乐在其中设计模式(C#) - 抽象工厂模式(Abstract Factory Pattern) [索引页] [源码下载] 乐在其中设计模式(C#) - 抽象工厂模式(Abstract Facto ...

  5. 【设计模式】抽象工厂模式 Abstract Factory Pattern

    简单工厂模式是一个工厂类根据工厂方法的参数创建不出不同的产品, 工厂方法模式是每一个产品都有一个一一对应的工厂负责创建该产品.那么今天要讲的抽象工厂模式是一个工厂能够产生关联的一系列产品.抽象工厂模式 ...

  6. 设计模式之简单工厂模式(Simply Factory)摘录

    从设计模式的类型上来说,简单工厂模式是属于创建型模式,又叫静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一.简单工厂模式是由一个工厂对象决定创建出哪一种 ...

  7. Net设计模式之抽象工厂模式(Abstract Factory Pattern)(1)

    一.抽象工厂模式简介(Bref Introduction) 抽象工厂模式(Abstract Factory Pattern),提供一个创建一系列相关或者相互依赖对象的接口,而无需制定他们的具体类.优点 ...

  8. 设计模式剖析——抽象工厂模式Abstract Factory Pattern

    含义 与工厂方法模式相比,概念有些不一样.有抽象零件.抽象产品.抽象工厂.用零件来组装出产品,组装出的产品才是完整的产品. 既然一个完整产品需要多个零件,那么每种具体工厂自然也需要可以同时生产出多种零 ...

  9. 一起学习设计模式--02.简单工厂模式

    工厂模式是最常用的一类创建型设计模式.我们所说的工厂模式是指工厂方法模式,它也是使用频率最高的工厂模式. 简单工厂模式是工厂方法模式的小弟,它不属于GoF 23种设计模式,但是在软件开发中应用也颇为频 ...

最新文章

  1. 初学java之菜单条,菜单,菜单项的设置
  2. STM32单片机,禁止系统启动时的变量初始化
  3. Python Web部署方式总结
  4. GHOST系统时出现“A:\GHOSTERR.TXT”的解决方法
  5. js获取a标签的value值_js逆向 | 某住房网跳转链接生成逻辑分析
  6. 从头开始写框架(二):孕育框架的种子_中
  7. 计算机网络基础问题总结
  8. 仿layui风格漂亮easyui主题皮肤美化
  9. 更新1 80000字符,自制python小游戏,手写勿喷
  10. kettle Call From LAPTOP-14BPR3NI/192.168.1.2 to locahost:8020 failed on connection
  11. html中按钮怎么设置渐变色,CSS3渐变色按钮
  12. 写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!
  13. 2646-61-9, 脯氨酰内肽酶(PEP)底物: Z-GPLGP-OH
  14. ifconfig命令手册
  15. ASSIST-GAI全色域指数计算工具
  16. 计算机基础教学评价ppt,教学PPT课件:教学PPT的设计原理和评价标准
  17. html3d模型渲染,【SVG】纯clip-path打造的3D模型渲染器
  18. easyrecovery工具2023最新版一键恢复丢失数据免费下载
  19. 计算机辅助诊断应用,计算机辅助诊断数学方法应用.ppt
  20. 【234期】新来的同事问我 where 1=1 是什么意思?

热门文章

  1. 传微软有意收购EA公司,连《绝地求生》的蓝洞也想一并收入囊中
  2. 资产管理大佬讲述:如何用大数据及人工智能挑选基金?
  3. ArcGIS JS 学习笔记4 实现地图联动
  4. 星云测试-给你的Android应用做个深度体检
  5. 例说DNS递归/迭代名称解析原理
  6. PL/SQL基础篇4(游标)
  7. 如何编写数据库存储过程?
  8. Malformed server response 解决方案
  9. 深入理解JVM——(三)为什么JVM新生代需要两个Survivor区
  10. 数据驱动的云托管服务最佳范式