“命令查询分离”规则的例外情况?

时间:2013-04-09 00:09:12

标签: ruby command-query-separation

Command-Query Separation“声明每个方法应该是执行操作的命令,或者是将数据返回给调用者的查询,而不是两者。换句话说,提出问题不应该改变答案。 “

a = [1, 2, 3]
last = a.pop

这里,在Ruby中,pop命令返回该项从弹出窗口。

这是一个命令在一个方法中查询的例子,它似乎是必要的。

如果是这种情况,那么拥有一个基本上是查询和命令的方法真的是代码味道吗?

1 个答案:

答案 0 :(得分:4)

堆栈弹出是CQS众所周知的例外。 Martin Fowler注意到它是打破规则的好地方。

我会说在这种情况下它不是代码味道,但一般来说 代码味道。

相关问题