এমন একটি পরিস্থিতি কল্পনা করুন যেখানে আমরা একটি লাইব্রেরি ব্যবহার করছি যা আপনাকে Circleঅবজেক্ট তৈরি করতে দেয় , যেখানে আপনি এটির ব্যাসার্ধ এবং বৃত্তের কেন্দ্র নির্দিষ্ট করতে পারেন it তবে কোনও কারণে এটি প্রয়োজনীয় flavourপ্যারামিটারও নেয় । এখন বলা যাক আমাকে Circleআমার নিজের অ্যাপ্লিকেশনটিতে সত্যই ব্যবহার করা দরকার তবে আমার অ্যাপ্লিকেশনটির উদ্দেশ্যে আমি Flavours.Cardboardপ্রতি একক বারের স্বাদটি সেট করতে পারি ।
এই "সমাধান" করার জন্য, আমি আমার নিজের তৈরি Circleএকটি ভিন্ন নামস্থান, যা শুধুমাত্র লাগে ক্লাস radiusএবং centerপরামিতি হিসেবে কিন্তু বাহ্যিক লাইব্রেরির একটি অন্তর্নিহিত কনভার্টার রয়েছে Circleবর্গ যা শুধু একটি তৈরি করে Circle(this.radius, this.center, Flavours.Cardboard)অবজেক্ট। সুতরাং Circleযেখানেই আমার অন্য ধরণের প্রয়োজন , আমি স্বয়ংক্রিয় রূপান্তর ঘটতে দেব।
এ জাতীয় শ্রেণি তৈরির পরিণতি কী? এর চেয়ে আরও ভাল সমাধান আছে কি? অন্যান্য প্রোগ্রামারদের ব্যবহারের উদ্দেশ্যে যদি আমার অ্যাপ্লিকেশনটি এই বাহ্যিক লাইব্রেরির উপরে নির্মিত একটি এপিআই হয়ে থাকে তবে তাতে কি কোনও পার্থক্য হবে?
MakeCircle ফাংশন তৈরি করবেন না ?
makePlayerযা কেবল প্লেয়ারকে রাখার জন্য স্থানাঙ্ক গ্রহণ করে, তবে আরও জটিল নির্মাতাকে প্রতিনিধি করে।