For many people, an enumeration is the correct solution, and
for others the solution is a lookup table. I do not think those should be used
together, but some people might have a reason to do so. It is important to keep
in mind the circumstances of your exact situation when deciding, because I
think there are plenty of times when an object should be used instead of either
one.
Using the method outlined in this article should allow you
to get around using an enumeration or a lookup table. It is an alternative that
lets you extend enumerations, and has some other pros and cons. In some ways
they are not as easy to work with as enumerations, but they are also safer in
some ways.
You can find more content from this author on his blog.