Enums VS Classes VS Interfaces

He estado leyendo muchas publicaciones en este sitio sobre el uso de constantes.

Pregunta: ¿Cuándo debo usar Enums para constantes, en vez de usar clases o interfaces?

Veo 2 situaciones clave que estoy tratando de abordar.

1. Constantes globales utilizadas en aplicaciones por múltiples proyectos.

Ejemplo

Cadenas de registro comunesContainer hace referencia a una referencia de correlación de base de datos utilizada en @EAR de WebSphe 2. Constantes específicas de objeto

Ejemplo

Tasas de pago de empleados para un objeto de empleado

De todo lo que he leído, esto es lo que creo que entiendo y sobre lo que estoy buscando una opinión.

Para la situación 1: Enfoque de diseño: utilice una clase final y una importación estática.
Visto aquí: ¿Cuál es el uso de constantes de interfaz?

Para la situación 2: Enfoque de diseño: aplique el uso de Enums para representar esas constantes como un objeto.

Puntos adicionales para recordar:

Si la cadena constante pertenece a la clase y solo necesita mantener el valor de la cadena en la clase que la usa No utilice una interfaz para la situación 1. Como se menciona en el enlace anterior como Anti-patrón de interfaz constante. .

Gracias de antemano por sus pensamientos y opiniones.