पर उठाया गया है मैं एक अंतरफलक iStore रूप में परिभाषित किया, दो तरीकों के साथ है:सी # - इंटरफेस/सार वर्ग - घटना सुनिश्चित विधि
public interface IStore<TEntity>
{
TEntity Get(object identifier);
void Put(TEntity entity);
}
मैं चाहता हूँ एक घटना रखो की सफलता पर उठाया जा (के लिए संदर्भ, रखें एक DB में एक पंक्ति की दुकान सकता है, या फाइल सिस्टम आदि पर फ़ाइल ...)
तो, एक वर्ग उत्पाद के प्रकार के लिए iStore को लागू करने के लिए इस तरह एक सा दिखेगा:
class MyStore : IStore<Product>
{
public Product Get(object identifier)
{
//whatever
}
public void Put(Product entity)
{
//Store the product in db
//RAISE EVENT ON SUCCESS
}
}
मैं क्या कर रहा हूं, यह सुनिश्चित करने का एक तरीका है कि आईएसटीओआर के हर कार्यान्वयन ने घटना को बढ़ाया - क्या मेरे पास इसके बजाय एक अमूर्त वर्ग होना चाहिए, या साथ ही इंटरफेस भी होना चाहिए?
यह मेरा जवाब होने वाला था। कुछ स्तर पर, जब आप विधियों को ओवरराइड करने की अनुमति देते हैं तो आप हमेशा अनुबंध को समझने वाले लोगों पर निर्भर रहते हैं। लेकिन इस तरह एक ढांचा प्रदान करने से आप आदेशों के बारे में कुछ नियंत्रण करने की अनुमति देते हैं। – unholysampler