मान लीजिए कि हमनिर्माता इंजेक्शन और डिफ़ॉल्ट भार के
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())
{}
यह एक सामान्य प्रश्न है, यानी टाइमस्टैम्पिंग दिलचस्प हिस्सा नहीं है।
निर्भरता इंजेक्शन का क्या स्वाद आप सीएबी का उपयोग कर रहे हैं? कैसल? –
इस प्रश्न के प्रयोजनों के लिए, कोई नहीं। यह एक सामान्य एपीआई पूछताछ है। मैंने "इंजेक्शन" अर्थ को हटाने के लिए प्रश्न को अद्यतन किया है। –