আমি মনে করি XxxManager
গেম ইঞ্জিন প্রোগ্রামিংয়ে স্টাইলের ক্লাসগুলি ব্যবহার করা খারাপ ধারণা reading Manager
অন্য একটি নাম দ্বারা যদি একটি হয়ে শেষ ।
এটি কি সত্যই অনুসরণ করা খারাপ প্যাটার্ন? যদি তাই হয়, বিকল্পগুলি কি?
আমি মনে করি XxxManager
গেম ইঞ্জিন প্রোগ্রামিংয়ে স্টাইলের ক্লাসগুলি ব্যবহার করা খারাপ ধারণা reading Manager
অন্য একটি নাম দ্বারা যদি একটি হয়ে শেষ ।
এটি কি সত্যই অনুসরণ করা খারাপ প্যাটার্ন? যদি তাই হয়, বিকল্পগুলি কি?
উত্তর:
"ম্যানেজার" ক্লাস বিভিন্ন কারণে সমস্যা হতে পারে। দুটি মূল কারণ হ'ল:
প্রায়শই সেই কারণগুলির মধ্যে একটির কারণ অন্যটিকে বোঝায় বা বোঝায়।
এই বিষয়গুলি মনে রাখা ভাল জিনিস, তবে এগুলি আসলে আপনার ক্ষমতাকে পঙ্গু করতে দেবেন না আপনার গেমটি তৈরির আপনার । শেষ পর্যন্ত আপনার ক্লাসগুলি কী বলা হয় বা তারা কী করে তা কেউ যত্ন করে না। তারা আপনার খেলা সম্পর্কে যত্ন নিতে যাচ্ছেন।
বেশিরভাগ "পরিচালকদের" দুটি ভাগে ভাগ করা সাধারণত বেশ সহজ:
যে অংশটি আসল বস্তুগুলিকে সঞ্চয় করে এবং এগুলিতে অ্যাক্সেস সরবরাহ করে (যা আপনি "স্টোর," একটি "সংগ্রহশালা," একটি "ডাটাবেস," একটি "ক্যাশে," বা অন্যান্য বিভিন্ন জিনিস কল করতে পারেন This এটিই সেই ধরণের যা সাধারণত দায়ী is অবজেক্টের জীবদ্দশায়; অর্থ্যাৎ, যখন কোনও বস্তু এই ধরণের কোনও উদাহরণ থেকে সরিয়ে ফেলা হয় বা অন্যথায় থাকে না তখন এটি উপস্থিতি বন্ধ করে দেয়।
যে অংশটি আসল বস্তুগুলিকে প্রসেস করে এবং সেগুলিতে কিছু কাজ করে। এটি সেই বিষয়গুলি আপডেট করতে পারে (তারপরে এটি একটি "আপডেটেটর" বা "সিমুলেশন") বা এটি তাদের আঁকতে পারে (তারপরে এটি "ড্রয়ার" বা "রেন্ডারার")। অথবা এটি তাদের সাথে অন্য কিছু করতে পারে; গুরুত্বপূর্ণ বিষয়টি এর প্রাথমিক উদ্দেশ্য অনুসারে এটির নামকরণ করা। আপনি সাধারণত এই ধরণের উদাহরণস্বরূপ বা প্রথম ধরণের উদাহরণগুলির (যেমন কেবলমাত্র বস্তুর আজীবন পরিচালনা করেন) এর উদাহরণগুলি দিতে চান।
একটি যুক্তিসঙ্গত যুক্তি তৈরি করা যেতে পারে যে প্রথম ধরণের নামটিতে ম্যানেজার অন্তর্ভুক্ত থাকতে পারে (কারণ এটি "কিছু বস্তুর" জীবনকাল পরিচালনা করে ")। আপনি আপনার টাইপটির নাম এভাবে রাখলে পৃথিবী শেষ হবে না, যদিও আপনাকে "আইটেম ম্যানেজারদের বলবেন না" ফর্মটির হাঁটু ঝাঁকুনির প্রতিক্রিয়া জানাতে হতে পারে, তাই আপনি কেবল এ জন্য এড়াতে চাইতে পারেন।
আপনি যখন মন্তব্যগুলিতে লিঙ্কযুক্ত ব্লগ পোস্টটি পড়েন, তখন আপনি দেখতে পাবেন যে "অন্য নামে পরিচালক হ'লে" হ'ল এটি আপনাকে যা করতে চায় তা ঠিক। সফ্টওয়্যার বিকাশে এটি সাধারণ conকমত্য যে গ্লোবাল ভেরিয়েবলগুলি মন্দ, এবং একমাত্র বিকল্প হ'ল যে কোনও ডেটা অন্য ডেটা দ্বারা রাখা হয়।
নামের একটি শ্রেণিতে সমস্যা FoobarManager
হ'ল "ম্যানেজার" শব্দটি আপনাকে ক্লাসটি আসলে কী করে তা বলে দেয় না । উদাহরণ স্বরূপ:
FoobarController
।FoobarFactory
বা FoobarBuilder
।FoobarRenderer
।FoobarEventHandler
।FoobarObserver
।Foobars
।আপনি এই শ্রেণীর যে কোনও একটির নাম রাখতে পারেন "ম্যানেজার"। তবে তারপরে এটি এর যে কোনও কার্যকারিতা সম্পাদন করতে পারে। এবং যখন আপনি পরে বুঝতে পারবেন যে উপরের ক্রিয়াকলাপগুলির জন্য আপনার আরও একটি প্রয়োজন, আপনি এটিকে ফুবারম্যানেজারের সাথেও সংহত করতে পারবেন। সুতরাং আপনি একটি গড অবজেক্টের সাথে সমাপ্ত হবেন যা উদ্বেগের নীতিটি বিভক্ত করে (প্রতিটি শ্রেণীর ঠিক একটি জিনিস করা উচিত)।
FoobarStore
বা FoobarRepository
এটি কী জন্য এটি আরও পরিষ্কার করা উচিত।