提问人:brasskazoo 提问时间:10/14/2008 最后编辑:brasskazoo 更新时间:10/14/2008 访问量:538
我可以在这里使用什么描述性变量名称?
What descriptive variable name can I use here?
问:
我正在创建一个自定义 Java Struts 标签,用于以标准化方式构建和格式化 html 选择框(我们的可用性指南的一部分)。
每个选择框都有一个附加/初始值,用于描述选择元素返回的值的要求,即:
- 必填 - 带有“请选择”标签
- 可选 - “未选择”
- 全选 - “全选”
自定义标记将具有一个属性,用于控制要使用其中的哪些标记。
所以问题是,我需要想出一个变量名称来充分解释它持有这三个值之一!
无论如何,我都会对代码进行注释,但我更希望同事们不必查找源代码来记住标签变量的用途。
编辑:为了解决这个问题,我在这里实现的可用性策略是,如果可以选择的项目超过 5 个,则选项应显示为选择框。5 个或更少的项目将显示为单选按钮。
使用单选按钮时,不会显示强制标签(如果未选择任何值,表单验证将报错)。
答:
“多重性”似乎是正确的名称。
看起来您正在描述以下值:
必填项:1 可选:0+ 全选:n
可选性
必填/可选似乎是一个布尔值,这是否是一个可选字段。
“全选”似乎几乎无关,可能是它自己的属性。
注意:请参阅下面的编辑,了解与此处给出的方法不同的方法
怎么样 ?requirementConstraint
<my:customSelect requirementConstraint="Mandatory">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</my:customSelect>
另一种可能性是首先不要对值进行三态化。例如,您可以改为提供两个单独的属性:() 和 () 以使意向更清晰。required
"yes" | "no"
selectAll
"yes" | "no"
编辑:实际上,如果我正确理解您的要求,我可以看到三态仍然有用。另一种可能性是调用该属性并指定允许的值(必需)、(可选)和(全选)。此外,由于“全选”是可能的,我假设您的标签将每个选项呈现为复选框。如何使用的示例:mustSelect
one
any
all
customSelect
mustSelect
强制性(至少一个)
<my:customSelect mustSelect="one">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</my:customSelect>
可选(零个或多个)
<my:customSelect mustSelect="any">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</my:customSelect>
全选
<my:customSelect mustSelect="all">
<option value="1">A</option>
<option value="2">B</option>
<option value="3">C</option>
</my:customSelect>
评论
这是一个有趣的问题。我以前一定遇到过很多次这种情况,但从来没有真正以这种方式思考过。
你的问题是你的编程语言支持双向选项(例如零或一)比三向选项(零一或多)好得多。“自然”产生的速记通常是从编程语言中产生的速记,因此三向选项没有“自然”的速记。
本着 KISS* 的精神,我建议您在属性名称后附加“ZeroOneOrMany”。
[*]保持简单,愚蠢!
评论