Estoy trabajando en la capa de manejo de excepciones para mi aplicación.Cómo usar interfaces en el manejo de excepciones
He leído algunos artículos sobre interfaces y genéricos. He usado la herencia antes de mucho y me siento cómodo en esa área.
Tengo un muy breve diseño que voy a poner en práctica:
public interface IMyExceptionLogger
{
public void LogException();
// Helper methods for writing into files,db, xml
}
Estoy un poco confundido lo que debería hacer a continuación.
public class FooClass: IMyExceptionLogger
{
// Fields
// Constructors
}
¿Debo aplicar LogException()
método dentro FooClass
? Si es así, entonces estoy luchando por ver cómo soy mejor que usar una interfaz en lugar de la clase concreta ...
Tengo una variedad de clases que harán uso de esa interfaz, pero no lo hago Quiero escribir una implementación de esa interfaz dentro de cada clase.
En el mismo tiempo, si puedo implementar una interfaz en una clase y, a continuación, utilizar esa clase en diferentes capas de la aplicación estaré aún Uso clases concretas en lugar de las interfaces, que es un mal diseño orientado a objetos ...
Espero que esto tenga sentido.
Cualquier comentario y sugerencia son bienvenidos.
Tenga en cuenta que no estoy interesado en utilizar net4log o sus competidores porque estoy haciendo esto para aprender.
Gracias
Editar:
escribió algunas más código. Así que implementaré una variedad de registradores con esta interfaz, es decir, DBExceptionLogger
, CSVExceptionLogger
, XMLExceptionLogger
etc. De todas maneras terminaré con clases concretas que tendré que usar en diferentes capas de mi aplicación.
Hola, gracias por la respuesta. Esto significa que almacenaré una interfaz en una DLL e implementaciones de esa interfaz en un DLLS independiente. De esta manera tendré varias capas haciendo referencia a la capa de interfaz única. ¿Es esto correcto? –
sí, esa sería una buena manera de hacerlo. –
¡Muchas gracias! Realmente lo aprecio. –