【发布时间】:2011-12-19 08:50:58
【问题描述】:
通常必须使用许多布尔选项来配置一个类。在 Java 中有哪些推荐的方式来指定执行配置?
我可以想到 4 种方式如何将选项传递给类。
-
使用位掩码。高效,易于使用,但没有组合在一起。在其他成员中通过自动完成更难找到。大小受限。
public static final int A_ENABLED = 1 << 1; public static final int B_ENABLED = 1 << 2; -
使用(内部)参数类。难以创建,太冗长。
public static class Params { private final boolean enabledA; private final boolean enabledB; } public class MyFunctionality { private final SomeOtherArguments myDataArguments; ... private final Params params; MyFunctionality(SomeOtherArguments myDataArguments, Params params); } -
使用布尔字段作为类的一部分。增加类的详细程度(您必须担心的构造函数中的额外参数)。每次参数更改时都必须修改类的构造函数。在 2 选项中,只有 Params 类会改变。
public class MyFunctionality { private final SomeOtherArguments myDataArguments; ... private final boolean enabledA; private final boolean enabledB; private final boolean enabledC; private final boolean enabledD; ... public MyFunctionality(SomeOtherArguments someOtherArguments, boolean enabledA, boolean enabledB, boolean enabledC, boolean enabledD); } -
使用枚举。
public static enum Params { OPTION_A, OPTION_B }
你能想到其他更好的方法吗?
【问题讨论】:
标签: java class configuration enums options