我们团队中有一位工程师希望在 JSON 数据中执行以下操作:
“可见”:“$(=状态'state_c')”
现在在模型中他有以下方法来确定状态:
protected function getCurrentState():String
{
var state:String = "defaultState";
if (xxxx)
state = "state_A";
else if (xxxx)
state = "state_B";
else if (xxxx)
state = "state_C";
else
state = "state_D";
return state;
}
现在,每当我需要更新状态时,我会在其他地方调用以下命令:
data.state = getCurrentState();
JSON 数据中使用的符号是前缀符号 (LISP),以防您好奇。模型所在的代码是用 AS3 编写的,上面名为“data”的对象是 Object 类型的。
我反对这个想法,我不理解将逻辑放入数据的价值。我从未见过会以这种方式使用的范例。我认为这打破了 MVC 架构设计并引入了许多不同的问题。这是我对这个设计最大的问题:
1)所有逻辑都是类型不安全的(数据是类型不安全的)
2) 现在开发人员必须知道如何做三件不同的事情来完成一项任务(编写 JSON 数据的程序员部分,编写正确的前缀表示法,并将正确的逻辑放入代码中)
3)我没有看到对这种行为进行单元测试的好方法
4) 将逻辑扩展到多个代码区域,从而使查找错误更加困难。
我正在寻找关于这个问题的任何意见。为什么这是个好主意?我不喜欢它的理由有效吗?我缺少一些价值吗?