আমি মতবিরোধী মতামত শুনছি:
- "ডেডিকেটেড ম্যানেজার ক্লাসগুলি প্রায়শই সঠিক প্রকৌশল সরঞ্জাম নয়"
- "ডেডিকেটেড ম্যানেজার ক্লাসগুলি হাজার হাজার সংস্থান সহ একটি বৃহত প্রকল্পের বেঁচে থাকার সেরা উপায় (বর্তমানে)"
আসুন একটি ক্লাসিক রিসোর্স ম্যানেজার ক্লাস নেওয়া যাক যেখানে নিম্নলিখিত কার্যকারিতা রয়েছে:
- সম্পদগুলি লোড করে (টেক্সচার, অডিও, 3 ডি মডেল ইত্যাদি)
- ক্যাশে রেখে সম্পদগুলি একবারে লোড হয় তা নিশ্চিত করে
- সম্পদগুলি বাতিল করা যায় কিনা তা নির্ধারণের জন্য রেফারেন্সটি গণনা করে
- আসল সম্পদগুলি যেখান থেকে এসেছে সেগুলি লুকিয়ে রাখে (উদাঃ, সম্পদের জন্য এক ফাইল হতে পারে, বা একটি প্যাকেজ ফাইলে সমস্ত সম্পদ, বা সম্পদ এমনকি নেটওয়ার্কের মাধ্যমেও লোড করা যেতে পারে)
- প্রোগ্রামটি আরম্ভ না করেই সম্পদগুলি পুনরায় লোড করতে পারে, যা গেমটিতে কাজ করা শিল্পীদের পক্ষে অত্যন্ত কার্যকর।
এর জন্যও টেবিল বন্ধ যুক্তি "singletons খারাপ" যাক এই ResourceManager বস্তু হওয়ার ভান করে singletons নয়, এবং পরিবর্তে মাধ্যমে প্রায় গৃহীত হয় নির্ভরতা ইনজেকশন ।
তারপরে "কারখানাটি ব্যবহার করুন" বা "এটিকে একটি কারখানা বলুন" যুক্তি রয়েছে। এর সাথে আমার সমস্যা হ'ল, এটি একটি কারখানা, তবে এটি একটি ক্যাশে এবং পুনরায় লোডারও (আরও ভাল শব্দের অভাবে)। এটিকে ফ্যাক্টরি বলা এটি সঠিকভাবে বর্ণনা করে না, এবং আমি যদি এটি একটি যথাযথ কারখানা করি তবে ক্যাশিং এবং পুনরায় লোডিং কোথায় কার্যকর হবে?
আমি সম্মত হই যে "ম্যানেজার" ক্লাসগুলি প্রায়শই খারাপ আর্কিটেকচারের লক্ষণ হয় তবে এই বিশেষ ক্ষেত্রে এটি পুনর্গঠন করা যায় এবং এখনও সমস্ত কার্যকারিতা ধরে রাখতে পারে ? এটি কি এমন পরিস্থিতি যেখানে "ম্যানেজার" শ্রেণিটি আসলে উপযুক্ত?