Scenario: Currently storing all the types of a mazeblock in an enum, but then when I add a new "mazeblock", I need to update the enum. I want each mazeblock to contribute to it when its loaded into the system so I don't have tight coupling.
For dynamic, enum-like sets of string values, should they be stored as singletons, static variables, or abstract classes? As singletons and static variables, they are persistent and fairly accessible. As an abstract class, derived classes can be made with the class name representing the enum -- but it would be an empty class with no extra functionality.