使用非二进制值的特征标志是否是一个好习惯,尤其是如果所有值都是互斥的?

问题描述

功能标志在选择性地启用/禁用应用程序中的功能方面起着至关重要的作用。简单的 ON/OFF、True/False 功能标志很常见且易于使用。然而,这些特征特征标志不必总是采用二进制值。它们可以有多个值 A/B/C,并且代码的行为取决于标志的值。

为了处理这样的多值特征标志,也许我们可以有一个枚举

FeatureFlagValue {
  A,B,C
}

代码中,我们可以进行如下检查:

if (FeatureFlagValue.A.equals(featureFlag)) {
  // implement feature 1
}
if (FeatureFlagValue.B.equals(featureFlag)) {
  // implement feature 2
}
if (FeatureFlagValue.C.equals(featureFlag)) {
  // implement feature 3
}

现在在这种情况下,A、B 和 C 是互斥的,并且所有 3 种都可以同时为 True 或 False。然而,问题是有一个多值特征标志是一个好习惯,比如一个有 3 个值的标志,或者有 3 个带有二进制真/假值的标志更好 例如

enablefeatureA - True/False
enablefeatureB - True/False
enablefeatureC - True/False

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)