加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – 迭代执行命令列表 – 哪个模式?

发布时间:2020-12-15 05:09:03 所属栏目:Java 来源:网络整理
导读:我编写了一个 Java程序,它读入一个包含要执行的命令的文件(用我自己编写的语言).命令以字符串形式读入并放入数组中.现在,“调度程序” – 方法将循环遍历数组,解释命令并调用将对其执行操作的相应方法. 这当然导致了一大堆嵌套的if语句: if commandReadIn =
我编写了一个 Java程序,它读入一个包含要执行的命令的文件(用我自己编写的语言).命令以字符串形式读入并放入数组中.现在,“调度程序” – 方法将循环遍历数组,解释命令并调用将对其执行操作的相应方法.

这当然导致了一大堆嵌套的if语句:

if commandReadIn == this,do that... 
if commandReadIn is of type x,get next element,treat next element as argument... 
etc.

现在我只有一些命令,但如果我想添加数百个呢?代码将变得无法维护.

现在我想知道是否可以完全摆脱条件逻辑.这里的命令模式似乎没什么用,因为我不得不在某个时候解释字符串..这意味着很多嵌套的“if”.如果不可能,那么以一种能够轻松添加,编辑或删除命令的方式重构命令及其语法的最佳方法是什么?

解决方法

使用 Command Pattern作为命令.您的实施可以大大简化.

1)使用execute方法创建Command接口.
2)为每个命令创建一个实现.
3)当您启动程序时,创建一个命令字符串映射 – >命令实现.
4)当您读入字符串时,查找相应的实现并调用它.
5)可选地,您的execute方法可以将自定义Context对象作为参数,允许您以通用方式传递命令参数.由实现来理解上下文对象并从中检索参数.

使用这种方法,除了可能检查您是否无法从命令实现的缓存中检索任何内容之外,您将没有if语句.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读