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