एक आवेदन जो मैं प्रक्रियाओं पर काम कर रहा हूं कार्य आइटम। एक कार्य आइटम की स्थिति के आधार पर कई क्रियाएं उपलब्ध हैं। "पूर्ण" "रद्द करें" "पुन: असाइन करना" आदि ...एक डिजाइन पैटर्न की सिफारिश करें
कार्यों मैं वर्तमान में एक अंतरफलक है कि कुछ इस तरह दिखता है के लिए कार्यक्षमता प्रदान करने के लिए ...
public interface IActionProvider{
public void Complete(WorkItem workItem);
public void Cancel (WorkItem workItem);
public void Reassign(WorkItem workItem);
}
तब के अन्य विवरणों के आधार पर कार्य आइटम में इंटरफेस के ठोस कार्यान्वयन हैं। बस उदाहरण के लिए ...
public class NormalActionProvider :IActionProvider
{
...
}
और
public class UrgentActionProvider : IActionProvider
{
....
}
समस्या यह है, अगर मैं किसी नए कार्य जोड़ना चाहते हैं, कहते हैं ... "प्रतिनिधि" मैं इंटरफ़ेस अपडेट करना पड़ता है जो निश्चित रूप से सभी कार्यान्वयन पर प्रभाव पड़ता है।
क्या यह ओपन/क्लोज़ सिद्धांत का उल्लंघन करता है? क्या आप एक डिजाइन पैटर्न या रिफैक्टर की सिफारिश कर सकते हैं जो मेरी मदद कर सकता है?