¿Cuáles son los diferentes métodos para inyectar preocupaciones transversales?

¿Cuáles son los diferentes métodos para inyectar inquietudes transversales en una clase para que pueda minimizar el acoplamiento de las clases involucradas mientras se mantiene el código verificable (TDD o de otro tipo)?

Por ejemplo, considere si tengo una clase que requiere tanto la funcionalidad de registro como la administración centralizada de excepciones. ¿Debo usar DIP e inyectar ambas inquietudes requeridas a través de una interfaz en la clase que las requiere? ¿Debo usar un localizador de servicios que pase a cada clase que requiera alguna funcionalidad transversal? ¿Hay una solución totalmente diferente? ¿Estoy haciendo la pregunta equivocada por completo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta