अक्सर मुझे कॉन्फ़िगर करने योग्य कार्यक्षमता वाले ऑब्जेक्ट्स को इंजीनियर करने की आवश्यकता मिलती है।जावा कॉन्फ़िगरेशन/पैरामीटर पासिंग डिज़ाइन
उदाहरण के लिए, मान लें कि मैं DateIterator
बना रहा हूं। कॉन्फ़िगर करने योग्य विकल्प यह हो सकता है कि बंद अंतराल [start, end]
या ओपन एंड अंतराल [start, end)
को फिर से चालू करना है या नहीं।
- (1), मेरी राय में, नमकहराम समाधान - केवल एक सही/गलत विन्यास विकल्प के लिए सीमित
new DateIterator(boolean openInterval);
- (2) typesafe enum तरीका है - आम तौर पर एक बिट भारी
new DateIterator(Interval.OPEN_END);
- (3) unconv entional प्रयास - अच्छा, लेकिन नहीं भी सीधे आगे
new DateIterator().openEnd();
- (4) विरासत दृष्टिकोण - अक्सर से अधिक इंजीनियरिंग
new OpenEndedDateIterator();
इस में कुछ विकल्प जो मैं अवर पर विचार आता है करने के लिए
, पूर्णांक-आधारित कॉन्फ़िगरेशन new DateIterator(Interval.OPEN_END);
या संपत्ति आधारित कॉन्फ़िगरेशन की तरह।
क्या कोई अन्य दृष्टिकोण है? आप किस दृष्टिकोण से पसंद करते हैं?