Допустим, мы имеемКонструкторы нагнетательных и по умолчанию перегрузках
public interface ITimestampProvider
{
DateTime GetTimestamp();
}
и класс, который потребляет его
public class Timestamped
{
private ITimestampProvider _timestampProvider
public Timestamped(ITimestampProvider timestampProvider)
{
// arg null check
_timestampProvider = timestampProvider;
}
public DateTime Timestamp { get; private set; }
public void Stamp()
{
this.Timestamp = _timestampProvider.GetTimestamp();
}
}
и реализацию по умолчанию:
public sealed class SystemTimestampProvider : ITimestampProvider
{
public DateTime GetTimestamp()
{
return DateTime.Now;
}
}
это полезно или harfmful ввести этот конструктор?
public Timestamped() : this(new SystemTimestampProvider())
{}
Это общий вопрос, т. Е. Временная привязка не является интересной частью.
Какой вкус инъекции зависимости вы используете CAB? Замок? – 2008-11-18 22:00:52
Для целей этого вопроса нет. Это общий запрос API. Я обновил вопрос, чтобы удалить коннотацию «инъекции». – 2008-11-18 22:09:34