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 就可以了

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

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

  • 相关阅读:
    appium python api(转)
    make clean 与 make distclean 的区别
    实参相依查找[条款25]----《C++必知必会》
    成员函数查找[条款24]---《C++必知必会》
    C++匿名名字空间
    程序界面多语言切换功能如何实现
    C 语言中 define 的全部使用方法总结
    #if defined(__cplusplus)
    伯乐在线
    jsp手动分页
  • 原文地址:https://www.cnblogs.com/zaohuojian/p/11484111.html
Copyright © 2011-2022 走看看