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