【发布时间】:2012-07-20 15:08:45
【问题描述】:
在 C 中我做过这种事情
enum { USE_COKE = 1,
USE_PEPSI = 2,
USE_JUICE = 4,
USE_WATER = 8 };
int makeDrink(int flags);
//...
int rcode = makeDrink(USE_COKE | USE_JUICE | USE_WATER);
我知道这是非常标准的,例如iostream 也使用它。我想知道如何将这种设计模式翻译成 Java 或 OOP?我相当确定多态不是这里的方法,因为我的代码有一个if(flag_is_set) 块比重写大部分例程更好。是否有一个实用程序 Flags 类,或者使用配置对象、enum 或一堆整数等的首选方法。
【问题讨论】:
-
你不需要Java中的标志,只需使用EnumSet
标签: java oop design-patterns enum-flags