Enum służy do oznaczania szczególnych stanów, w jakich znajduje się obiekt. Np. obiekt, który zwraca jakieś dane. Może zwracać je w różnych formach- XML, JSON, CSV. Tworzysz enuma, który zawiera 3 opcje- XML, JSON, CSV. W zależności, jak tego enuma ustawisz, w takiej formie dany obiekt będzie zwracał dane. (Wykorzystujesz to w jakimś switchu czy coś) Kiepski przykład, no ale jakieś zastosowanie jest.
Często podczas konfiguracji jakiegoś frameworka zdarza się, że trzeba enumy poustawiać na jakieś tam X, by wymusić zachowanie Y.