У меня есть базовый класс, который выполняет некоторую работу, включая ведение журнала. У меня есть зависимость ILogger, внедренная в конструктор
public abstract class BaseClassExample
{
protected readonly ILogger<BaseClassExample> logger;
public class BaseClassExample(ILogger<BaseClassExample> logger)
{
this.logger = logger;
}
}
. И я хочу, чтобы классы реализовывали BaseClassExample и тоже выполняли свою работу, включая ведение журнала.
public class DerivedClass : BaseClassExample
{
protected readonly ILogger<DerivedClass> logger;
public class BaseClassExample(ILogger<DerivedClass> logger)
{
this.logger = logger;
}
}
Это правильный способ делать вещи? Должен ли я получить тип реализующего класса для ведения журнала для базового класса? Должен ли я иметь отдельный экземпляр регистратора (с типом DerivedClass) или попытаться использовать тот же, что и базовый класс?