2017-10-19 33 views
0

我正在设计一个系统,我想要一系列函数调用来配置我控制的设备数量。不同级别的功能层次可以访问相同的数据吗?

假设我有A()致电B(arg 1)致电C(arg 1, arg 2) + D(arg 1, arg 2, arg 3)

在当前状态下,arg 1..3A可见。它会更好于:

  1. B访问arg 1..3,发现它们本身并利用它们来调用C + DOR
  2. 在黑暗中离开B,并有A它们传递到B,这将只是通过 他们到C + D

我的直觉是,第二选项是更好,因为我想要的变量为最低的在他们插手的功能。

回答

0

我宁愿代码分离成两种类型:

  • 交互件
  • 逻辑

交互件没有 “逻辑”(无控制流程,即cyclomatic complexity = 1),它们仅具有协作者(实例或函数引用其他代码部分)。他们的工作是协调对这些合作者的功能调用。逻辑是逻辑 - 循环,ifs,异常处理,不管你需要什么,但没有合作者(或者至少保持它们)。

在你的例子中,A是交互者,而B,C和D是逻辑。我会给A,B,C和D一个呼叫。A将结果从B(可能是参数2和3)转发给C和D.

这样,您可以用简单的基于状态测试,如果你愿意,你可以用基于模拟的测试来测试A.我说“如果你想要”,因为A主要是声明性代码,并且单独测试它并不是很有价值(当然假设整个系统在某个地方有一个验收测试)。

对于基于状态和基于模拟的测试,请参阅this answer

提示:交互者的合作者主要是逻辑,但也可以是其他交互者...

相关问题