我有一个对话框,根据应用程序的状态,当前用户的安全性等显示各种内容.我正在传递几个布尔标志,然后根据这些标志启用和/或隐藏UI组件.Eg:
new MyDialog(showOptionsTable, allowFooInput, allowBarInput, isSuperUser)
Run Code Online (Sandbox Code Playgroud)
最初这开始是一些标志,这很好.但是现在随着需求的变化,它已经演变为五个布尔标志的输入.
处理这种行为的最佳做法是什么?这是否应该根据对话框的外观进行子类化?
小智 10
和许多事情一样,"这取决于".
Ben Noland建议用一个类来保存配置选项.这是可行的,但有利于不变性,并可选择使用构建器模式.因为布尔值是内置类型,所以编写一个小型构建器将真正帮助人们理解代码.如果你将它与MyDialog(真实,真实,......)进行比较,你就知道我的意思了:
Options.allowThis().allowThat()建()
克里斯建议使用比特字段,但正如一些评论者指出的那样,由于Josh Bloch的Effective Java中列出的许多原因,比特字段是邪恶的.基本上他们很难调试和容易出错(你可以传入任何int,它仍然会编译).因此,如果你走这条路线,使用真实的枚举和EnumSet.
| 归档时间: |
|
| 查看次数: |
3464 次 |
| 最近记录: |