Eu uso enum
s dessa maneira o tempo todo. As enums são uma ótima maneira de escrever objetos auxiliares imutáveis dos quais você precisa apenas de uma cópia; eles ajudam a reduzir as chances de vazamentos de memória e agrupam facilmente muitas classes relacionadas de maneira clara.
O que eu não faria é expor o controle de qual BusinessLogic
específico você está usando para classes externas usando um método public
getter and setter; que está violando o encapsulamento.
Parece que seu caso de uso usa o Padrão de estado , que é um ótimo uso para enums em Java. No entanto, removendo a lógica de transição de estado da classe, você não pode garantir que outro código alterará o estado quando você não espera. Corrija isso tendo o código de transição de estado dentro da própria classe BusinessObject
, ou pelo menos em um objeto privado do pacote que você injete na classe BusinessObject
.