java – 许多布尔标志输入到类

我有一个对话框,根据应用程序的状态,当前用户的安全性等显示各种内容.
我目前正在传递几个布尔标志,然后根据这些标志启用和/或隐藏UI组件.Eg:

new MyDialog(showOptionsTable,allowFooInput,allowBarInput,isSuperUser)

最初这开始是一些标志,这很好.但是现在随着需求的变化,它已经演变为五个布尔标志的输入.

处理这种行为的最佳做法是什么?这是否应该根据对话框的外观进行子类化?

解决方法

和许多事情一样,“这取决于”.

> Ben Noland建议一个类来保存配置选项.这是可行的,但有利于不变性,并可选择使用构建器模式.因为布尔值是内置类型,所以编写一个小型构建器将真正帮助人们理解代码.如果你将它与MyDialog(真实,真实,……)进行比较,你就知道我的意思了:

Options.allowThis().allowThat()建()克里斯提出了比特字段,但正如一些评论者指出的那样,由于Josh Bloch的Effective Java中列出的许多原因,比特字段是邪恶的.基本上他们很难调试和容易出错(你可以传入任何int,它仍然会编译).因此,如果你走这条路线,使用真实的枚举和EnumSet.>如果你可以合理地继承(或撰写),意味着你通常只使用所有布尔值的几个组合,那么就这样做.

相关文章

摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
摘要: 原创出处 https://www.bysocket.com 「公众号:泥瓦匠...
今天犯了个错:“接口变动,伤筋动骨,除非你确定只有你一个...
Writer :BYSocket(泥沙砖瓦浆木匠)微 博:BYSocket豆 瓣:...
本文目录 线程与多线程 线程的运行与创建 线程的状态 1 线程...