Узор декоратора с регистрациейC#

Место общения программистов C#
Ответить
Anonymous
 Узор декоратора с регистрацией

Сообщение Anonymous »

Я недавно узнал о рисунке декоратора и хочу использовать его в своем коде, но я вижу проблему, представленную самой, когда хочу регистрацию. < /p>
с примером От Zoran Horvat у меня есть интерфейс Idiscount < /p>

Код: Выделить всё

public interface IDiscount
{
IEnumerable GetDiscount(Money money);
}
И я хочу сделать декораторы для него, как nozerodiscount

Код: Выделить всё

public class NoZeroDiscount(IDiscount other)
{
public IEnumerable GetDiscount(Money money)
{
return other.GetDiscount(money).Where(d => d != 0);
}
}
< /code>
Но если я хочу добавить журнал в этот декоратор, мне пришлось бы принять ilogger в конструкторе, поэтому этот декоратор не так просто, как я хотел бы, особенно если он принимает общий йлоггер. > Наличие такого требования затрудняет экземпляру класса книги. А для таких случаев, как Idiscount, интерфейс должен был измениться, чтобы принять регистратор ... < /p>
public class Book
{
public void ComplexStuff(ILogger logger, ...)
}
Я полагаю, что эта проблема усугубляется, если вы хотите, чтобы общие регистраторы, так как вам нужно создать один из правильного типа, вместо того, чтобы просто передавать свой не общий регистратор во все.
Как люди справляются с регистрацией в этих ситуациях для декораторов и моделей доменов, которые вы хотите иметь, и при этом сохраняют простоту использования перед добавлением журнала? < /p>

Подробнее здесь: https://stackoverflow.com/questions/793 ... th-logging
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»