Hãy nói rằng chúng tôi cóConstructor tiêm và mặc định quá tải
public interface ITimestampProvider
{
DateTime GetTimestamp();
}
và một lớp mà tiêu thụ nó
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();
}
}
và thực hiện mặc định của:
public sealed class SystemTimestampProvider : ITimestampProvider
{
public DateTime GetTimestamp()
{
return DateTime.Now;
}
}
là nó hữu ích hoặc harfmful để giới thiệu nhà xây dựng này?
public Timestamped() : this(new SystemTimestampProvider())
{}
Đây là câu hỏi chung, tức là dấu thời gian không phải là phần thú vị.
Bạn có sử dụng CAB nào? Lâu đài? –
Vì mục đích của câu hỏi này, không có câu hỏi nào. Đây là một yêu cầu chung về API. Tôi đã cập nhật câu hỏi để loại bỏ ý nghĩa "tiêm". –