In C I’ve done this sort of thing
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);
I know this is pretty standard, it’s also used in iostream for instance. I’m wondering how to translate this design pattern into Java or OOP? I’m pretty sure polymorphism is not the way to go here since it’d be better for my code to have an if(flag_is_set) block than rewrite much of the routine. Is there a utility Flags class, or a preferred way to do this using a configuration object, or an enum, or a bunch of ints, etc.
Java has enumerations. Here’s the tutorial.
I would use these over ints etc. It’s a type-safe solution, and since enums are objects, you can attach behaviours and avoid
switchstatements.You can combine these (as above) using an EnumSet. From the doc: