আমি কৌশল প্যাটার্নটি বোঝার চেষ্টা করছি এবং নিজেকে জিজ্ঞাসা করছি: প্রসঙ্গ শ্রেণিটি অবশ্যই থাকা উচিত বা আমি প্যাটার্নের উদ্দেশ্য নিয়ে আপস না করে এটিকে ছেড়ে দিতে পারি?
আমি এই ধারণার মধ্যে ছিলাম যে বিভিন্ন ধরণের ফাইল পড়ার জন্য আমার এক ধরণের সুইচ দরকার ছিল তবে কেবল কিছু হ্যাক করতে এবং পরে রিফ্যাক্টরিংয়ের সাথে ডিল করতে চাইনি (যদিও এটি অবশ্যই সর্বদা ঘটে থাকে যে কোডটি পুনঃসংশ্লিষ্ট করা যেতে পারে তবে ধারণাটি ছিল: চেষ্টা করুন আগে থেকেই ডিজাইনে যথাসম্ভব স্মার্ট হতে ...):
উইকিমিডিয়া থেকে তোলা ছবি
ক্লায়েন্ট সরাসরি স্ট্র্যাটেজি ইন্টারফেসে ডেলিগেট করতে পারেন বা প্রসঙ্গ বর্গ সম্পর্কে আমি বুঝতে কেবল মিস করেছি এমন কিছু কি আছে?
interface Reader {
// read information from file and fill data list field of Client
readFile();
}
class ExcelReader implements Reader{ /* */ }
class PdfReader implements Reader{ /* */}
class Client{
// strategic choice
Reader r;
// data list field
List<Data> data;
// Client Constructor
public Client(){
if(<file ends in .xls>)
r = new ExcelReader();
else
r = new PdfReader();
r.readFile();
}
}
সুতরাং উপরে বর্ণিত প্রসঙ্গ শ্রেণি অনুপস্থিত। কোডটি কী কৌশল রীতি অনুসরণ করে?