zoukankan      html  css  js  c++  java
  • 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及其具体实现类AddOperationSubOperation

    /// <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

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

  • 相关阅读:
    错误网络异常:android.os.NetworkOnMainThreadException
    方法服务android学习笔记42_服务的生命周期
    芯片软件随想录(关于核心技术)
    数组比特【编程珠玑】如何优化程序打印出小于100000的素数
    宋体函数Java乔晓松oracle分组函数
    调试客户端windbg远程调试方法
    方法对象Hibernate联合主键
    文件运行跟踪 root.sh 的 执行过程
    移植交叉编译pcDuino + busybox 成功搭建最小linux系统
    方法定制iOS学习笔记8UITableView的定制
  • 原文地址:https://www.cnblogs.com/ywqu/p/1640026.html
Copyright © 2011-2022 走看看