मेरे पास एक कक्षा है जिस पर मैं कई (~ 20 +) कॉन्फ़िगरेशन विकल्पों को अनुमति देना चाहता हूं। प्रत्येक विकल्प कार्यक्षमता के एक टुकड़े को चालू या बंद करता है, या अन्यथा संचालन बदलता है। इसे सुविधाजनक बनाने के लिए, मैंने डिफ़ॉल्ट मानों के साथ एक अलग विकल्प वर्ग को कोड किया। हालांकि, मुझे यह निर्धारित करने के लिए कि कैसे तरीकों का व्यवहार करना चाहिए, मुझे गार्ड कोड की स्थिति के साथ अपना कोड कूड़ा था। मैं लगभग पूरा कर चुका हूं, लेकिन अब कोड गंध लग रहा है।क्या कक्षा में "विकल्प" जोड़ने के लिए कोई पैटर्न है?
क्या इस तरह की कक्षा को लागू करने के लिए कोई पसंदीदा तरीका/पैटर्न है?
संपादित करें: अधिक विशेष रूप से, मैं एक पार्सिंग कक्षा पर काम कर रहा हूं। प्रत्येक विकल्प मूल पार्सिंग एल्गोरिदम के परस्पर अनन्य हिस्सों को कॉन्फ़िगर करता है। उदाहरण के लिए मुझे लगता है कि नीचे की तरह लग रही मेरी कक्षा में कई क्षेत्रों है:
if (this.Option.UseIdAttribute)
attributeIDs = new Hashtable();
else
attributeIDs = null;
public Element GetElementById(string id)
{
if (string.IsNullOrEmpty (id))
throw new ArgumentNullException("id");
if (attributeIDs == null)
throw new Exception(ExceptionUseIdAttributeFalse);
return attributeIDs[id.ToLower()] as Element;
}
जब तक आप कोड पोस्ट यह बहुत कहना मुश्किल है ... – johnstok