उपयोग करने के लिए प्रभावी जावा 2ed मद 2Refactor बिल्डर पैटर्न या Telescoping निर्माता पैटर्न
telescoping निर्माता पैटर्न के अनुसार, जो आप केवल आवश्यक मानकों के साथ एक निर्माता प्रदान में, एक और साथ एक वैकल्पिक पैरामीटर, तीसरा दो वैकल्पिक पैरामीटर, और इसी तरह, कन्स्ट्रक्टर में सभी वैकल्पिक पैरामीटर के साथ समाप्त होता है।
वर्ग इस पद्धति को लागू करने की कंस्ट्रक्टर्स का एक उदाहरण When would you use the Builder Pattern?
कोड सेट 1 ए से लिया गया है
Pizza(int size) { ... }
Pizza(int size, boolean cheese) { ... }
Pizza(int size, boolean cheese, boolean pepperoni) { ... }
Pizza(int size, boolean cheese, boolean pepperoni, boolean bacon) { ... }
आकार एक आवश्यक पैरामीटर है। पनीर, पेपरोनी, और बेकन वैकल्पिक पैरामीटर हैं। मान लीजिए कि मैं नीचे कन्स्ट्रक्टर प्रदान करना चाहता हूं।
कोड सेट 1b
Pizza(int size) { ... }
Pizza(int size, boolean cheese) { ... }
Pizza(int size, boolean pepperoni) { ... }
Pizza(int size, boolean cheese, boolean pepperoni, boolean bacon, int price, int) { ... }
एक और उदाहरण
कोड 2
public AttributeKey(String key, Class<T> clazz)
public AttributeKey(String key, Class<T> clazz)
public AttributeKey(String key, Class<T> clazz, @Nullable T defaultValue, boolean isNullValueAllowed)
public AttributeKey(String key, Class<T> clazz, @Nullable T defaultValue, boolean isNullValueAllowed, @Nullable ResourceBundleUtil labels)
दो नवीनतम उदाहरण मैं दिया पालन नहीं किया सेट करते है लक्षण कोड सेट 1 ए के रूप में निर्माता telescoping के आईसी
- किया कोड सेट -1 बी और 2 निर्माता telescoping में शामिल कर रहे हैं? यदि नहीं, तो इसे क्या कहा जाता है?
- बिल्डर पैटर्न है, जो एक का उपयोग करने के लिए की तुलना (बिल्डर के बीच और कोड सेट 1a के पैटर्न, 2) और अधिक लाभ
दोनों 1 बी और 2 संकलन-समय त्रुटियां देते हैं, क्योंकि उनके समान हस्ताक्षर वाले दो निर्माता हैं। – Superole
अन्य उत्तर http://stackoverflow.com/a/1953567/632951 अधिक जानकारी देगा ... – Pacerier