C#中使用简单工厂模式实现命令解释器

 

 

    现假设需要实现一个简单的算术计算解释器,在这个算术计算解释器中,用户通过使用add、subtract、multiply和divide命令分别获得两个无符号整形参数(非负整数)的和、差、积以及商。传统的做法是从标准输入或文件逐条地读入命令,并由专门的语法和语义解析程序对每条命令进行语法和语义分析,然后根据命令的语义对参数进行计算并输出结果。这种方法的优点在于实现思路简单,设计的核心就在于这个专门的语法和语义解析程序,然而这并不是一个好的做法,因为程序的扩充性不强,当我们需要向解释器中添加一个新的命令时,我们需要修改语法语义解析程序。
在C#中使用简单工厂模式就可以很好地解决这个问题。首先我们回顾一下简单工厂模式。简单工厂模式是一种类的创建型模式,它可以通过向工厂类传递参数来创建所需产品类的实例。在简单工厂模式中,所有的产品类都从同一个接口继承,并实现接口中的方法,工厂类在获得参数后,根据参数的取值来创建不同产品类的实例。下图简要地描述了简单工厂模式的基本结构。


 

图一 简单工厂模式类示意图

    在上图中,产品类Product1和Product2继承了IProduct接口,产品工厂类ProductFactory的CreateProduct方法用于根据外部传入的参数来生成相应产品类的实例,用户类UserClass通过使用工厂类ProductFactory的CreateProduct方法来获得该实例。
    现在再来讨论算术计算解释器的设计方法。我们可以将解释器所要解

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值