考虑此simple angular example并导航至question.service.ts
question.service.ts中的片段:
new DropdownQuestion({
key: 'brave',
label: 'Bravery Rating',
options: [
{key: 'solid', value: 'Solid'},
{key: 'great', value: 'Great'},
{key: 'good', value: 'Good'},
{key: 'unproven', value: 'Unproven'}
],
order: 3
})
替代以上(原始json):
{
key: 'brave',
label: 'Bravery Rating',
options: [
{key: 'solid', value: 'Solid'},
{key: 'great', value: 'Great'},
{key: 'good', value: 'Good'},
{key: 'unproven', value: 'Unproven'}
],
order: 3
}
我使用的不是上述原始json(如上所述),而是使用上述方法1。
我的论点不足以支持我的观点。但是我觉得,就可读性,可维护性和OOP而言,使用提供的JSON对象作为参数传递JS对象要比传递原始JSON更好。
我很难说服同事们同意我的方法。最好的方法实际上是什么?传递原始json真的比JS更好吗?或相反亦然?有其他替代方法吗?
谢谢。
答案 0 :(得分:1)
首先,它们都是完全不相关的,因为第一个选项期望某些特定格式为input
,但是第二个选项是自由数据结构,可以将input
作为{{1 }}。
第二,我猜想,您要寻找的是强制控件具有非常特定的结构,而不是在其中包装某些内容。您的DropdownQuestion
类应该看起来像-
DropdownQuestion
class DropdownQuestion implements Control{
public key;
public label;
public order;
public options =[];
}
是所有Control
都需要实现的通用接口。