zoukankan      html  css  js  c++  java
  • 面向编程对象的好处及应用简单工厂模式(1-3)

    面向编程对象的好处及应用简单工厂模式(1-3)

    1. 当初:

      • 在上一个随笔之前做一个修改和拓展(继承,多态)
    2. 现在:

      • 完善上一篇随笔-简单工厂实例

    可以参考之前的面向编程对象的好处及应用紧耦合VS松耦合(继承,多态)(1-2)

    添加OperationFactory运算工厂类

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DesignModel
    {
       public class OperationFactory
    {
    public static Operation createOperate(string operate)
    {
    Operation oper = null;
    switch (operate)
    {
    case "+":
    oper = new OperationAdd();
    break;
    case "-":
    oper = new OperationSub();
    break;
    case "*":
    oper = new OperationMUl();
    break;
    case "/":
    oper = new OperationDiv();
    break;
    }
    return oper;
    }
    }
    }
    

    客户端代码

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace DesignModel
    {
       public class Program
    {
       public static void Main(string[] args)
    {
    
    #region 客户端代码
    //实例化运算类
    Operation oper;
    oper = OperationFactory.createOperate("+");
    oper.NumberA = 1;
    oper.NumberB = 2;
    double result = oper.GetResult();
    
    #endregion
    
    }
    }
    }
    

    总结

    面向对象简单工厂实例

    添加OperationFactory运算工厂类

    定义Operation类的createOperate()方法

    客户端实例化出来 只需要更改运算

    如果有一天需要改加法运算我们只需要更改OperationAdd 就可以了

    如果需要增加各种运算,比如说平方根,如何做?

    答案是:需要增加相应运算子类就可以了,还需要在运算类工厂增加运算分支

  • 相关阅读:
    wikioi 1002 旁路
    OS X升级到10.10使用后pod故障解决方案出现
    Python challenge 3
    maven 编
    独立博客网站FansUnion.cn操作2多年的经验和教训以及未来计划
    Wakelock API详解
    智遥工作流——会签与多人审批区别
    mysql 参数optimizer_switch
    OpenRisc-31-关于在设计具有DMA功能的ipcore时的虚实地址转换问题的分析与解决
    TROUBLE SHOOTING: FRM-30425
  • 原文地址:https://www.cnblogs.com/zaohuojian/p/11484111.html
Copyright © 2011-2022 走看看