Я работаю над уровнем обработки исключений для моего приложения.
Я прочитал несколько статей об интерфейсах и обобщениях.Я довольно часто использовал наследование, и мне комфортно в этой области.
У меня есть очень краткий дизайн, который я собираюсь реализовать:
public interface IMyExceptionLogger
{
public void LogException();
// Helper methods for writing into files,db, xml
}
Янемного запутался, что мне делать дальше.
public class FooClass: IMyExceptionLogger
{
// Fields
// Constructors
}
Должен ли я реализовать метод LogException()
в FooClass
?Если да, то я не могу понять, как мне лучше использовать интерфейс вместо конкретного класса ...
У меня есть множество классов, которые будут использовать этот интерфейс, но яне хочу писать реализацию этого интерфейса в каждом классе.
В то же время, если я реализую интерфейс в одном классе, а затем использую этот класс в разных слоях приложения, я все равно буду использовать конкретные классы вместо интерфейсов, что является плохим дизайном ОО ...
Надеюсь, это имеет смысл.
Любые отзывы и предложения приветствуются.
Обратите внимание, что я не заинтересован в использовании net4log или его конкурентов, потому что я делаюэтому учиться.
Спасибо
Редактировать:
Написал еще немного кода.Таким образом, я буду реализовывать различные регистраторы с этим интерфейсом, например DBExceptionLogger
, CSVExceptionLogger
, XMLExceptionLogger
и т. Д. Чем я все же буду в итоге с конкретными классами, которые мне придется использовать на разных уровнях моего приложения.