ऐसी स्थिति की कल्पना करें जहां हम एक पुस्तकालय का उपयोग कर रहे हैं जो आपको Circleऑब्जेक्ट बनाने की अनुमति देता है , जहां आप इसे परिभाषित करने के लिए त्रिज्या और सर्कल के केंद्र को निर्दिष्ट कर सकते हैं। हालांकि, किसी कारण के लिए, यह एक आवश्यक flavourपैरामीटर भी लेता है । अब कहते हैं कि मुझे वास्तव Circleमें अपने ऐप में उपयोग करने की आवश्यकता है , लेकिन अपने ऐप के प्रयोजनों के लिए मैं Flavours.Cardboardहर एक बार स्वाद सेट कर सकता हूं ।
इस "हल" करने के लिए, मैं अपने खुद के बनाने के Circleलिए एक अलग नाम स्थान है, जो केवल लेता में वर्ग radiusऔर centerपैरामीटर के रूप में, लेकिन बाहरी लाइब्रेरी की करने के लिए एक अंतर्निहित कनवर्टर है Circleवर्ग जो सिर्फ एक बनाता है Circle(this.radius, this.center, Flavours.Cardboard)वस्तु। इसलिए हर जगह मुझे दूसरे प्रकार की आवश्यकता है Circle, मैंने स्वचालित रूपांतरण होने दिया।
ऐसी कक्षा बनाने के परिणाम क्या हैं? क्या कोई बेहतर उपाय हैं? अगर मेरे एप्लिकेशन को इस बाहरी लाइब्रेरी के शीर्ष पर बनाया गया एक एपीआई होता तो क्या इससे कोई फर्क पड़ता है, जो अन्य प्रोग्रामर द्वारा उपयोग के लिए बनाया गया था?
MakeCircle समारोह क्यों नहीं बनाया ?
makePlayerजिसमें खुद को केवल प्लेयर को जगह देने के लिए कोर्ड स्वीकार करता है, लेकिन बहुत अधिक जटिल कंस्ट्रक्टर को सौंपता है।