একটি আঠালো বা পরিচালনা শ্রেণি কখন বেশি কাজ করে?


10

আমি সেন্ট্রালাইজড ক্লাসগুলি তৈরির প্রবণ যারা আমার ডিজাইনের অন্যান্য ক্লাস পরিচালনা করে। এটি নিজেই সমস্ত কিছু সঞ্চয় করে না, তবে বেশিরভাগ ডেটা অনুরোধগুলি প্রথমে "ম্যানেজার" এর কাছে যায়। এই প্রশ্নের উত্তর খুঁজতে গিয়ে আমি "গড অবজেক্ট" শব্দটি লক্ষ্য করেছি। উইকিপিডিয়া এন্টিপ্যাটার্ন হিসাবে, বোধগম্য হিসাবে তালিকাভুক্ত।

কোনও বৈধ আঠালো শ্রেণি, বা মডিউল যে স্থান থেকে অন্য জায়গায় ডেটা এবং বার্তাগুলি এবং খুব বেশি কাজ করে এমন একটি শ্রেণীর মধ্যে রেখাটি কোথায়?

উত্তর:


15

"ক্লাসটি কখনই আপনার মাথার চেয়ে বড় হওয়া উচিত নয়" এর মতো অনেক লোক বলে।

যাইহোক, আমি এই বিষয়ে খুব সত্যই কিছু বিশ্বমানের প্রোগ্রামারদের সাথে আলোচনায় অংশ নিয়েছি। আমি এটি নেকেড অবজেক্টস ছেলের সাথে একটির সাথে আলোচনা করেছি। যতদূর আমরা বলতে পারি, কখনও কখনও এটি ঘটে এবং এর চারপাশে যাওয়ার খুব বেশি উপায় নেই।

সাধারণত, তবে যে শ্রেণীর সাথে এটি ঘটে তা হ'ল একটি ডোমেন অবজেক্ট যা আপনার ডোমেনের মৌলিক উপাদানকে উপস্থাপন করে - ব্যাংকিংয়ের জন্য একাউন্ট, খুচরা বিক্রয় ইত্যাদি যদি আপনি এটি অন্য শ্রেণীর ক্ষেত্রেও খুঁজে পেয়ে থাকেন তবে আপনি সম্ভবত এই শ্রেণীর দায়িত্ব বিবেচনা করতে চান। এখানে আমার টিপস:

  • যদি এটিকে "ম্যানেজার", "সহায়ক" বা "পরিষেবা" বলা হয় তবে সম্ভাবনা খুব বেশি। ক্লাসের দায়িত্বের কী হওয়া উচিত তা বাস্তবে কাজ করে নিলে অন্যান্য দায়িত্ব অর্পণ করা আপনার পক্ষে সহজ হবে find
  • যদি এটিকে "কন্ট্রোলার" বলা হয়, তবে এটি অন্য শ্রেণীর কিছু গ্রুপের মধ্যে মিথস্ক্রিয়া নিয়ন্ত্রণ করার জন্য ... এবং অন্য কিছুই নয় responsible
  • এটা বিভিন্ন শারীরিক নোডের মধ্যে তথ্য ও বার্তাগুলি ক্ষণস্থায়ী তাহলে পারেন এটি একটি ধারাবাহিকভাবে ফর্ম করার জন্য একটি নির্দিষ্ট বার্তা রূপান্তর সাথে মোকাবিলা করা উচিত, অথবা এটা স্থানান্তর প্রক্রিয়া পরিচালনা করে। উদাহরণস্বরূপ, আপনার কাছে এমন একটি শ্রেণি থাকতে পারে যা একটি ব্যাংক ট্রানজেকশনকে এক্সএমএলে রূপান্তর করে এবং অন্য শ্রেণিটি যা এইচটিটিপি-র মাধ্যমে এই এক্সএমএল প্রেরণ করে।
  • যদি এটি কোনও অ্যাপ্লিকেশনে বিভিন্ন মডিউলগুলির মধ্যে ইভেন্টগুলি অতিক্রম করে, তবে কোনও ইভেন্ট উত্থাপিত হওয়ার সময় শ্রোতাদের বলার জন্য এটি দায়বদ্ধ হওয়া উচিত এবং অন্য কিছুই নয়।

থাম্বের নিয়ম হিসাবে, এটি যদি খুব বড় হয় তবে দেখুন যে আপনি কোনও দায়িত্ব অন্য শ্রেণিতে অর্পণ করতে পারেন কিনা, এবং যদি আপনি না পারেন তবে সম্ভবত এটি ঠিক আছে।


দরকারী কংক্রিট গাইডলাইন সহ ভাল উত্তর। আমি ডোমেন অবজেক্টের জন্য এই জাতীয় ক্লাস তৈরি করার প্রবণতা করি যেখানে সমস্ত বা প্রায় সমস্তই ডেটা ডোমেনের কিছু দিককে উপস্থাপন করে এবং আমি এটিকে একক হিসাবে বিবেচনা করতে সক্ষম হতে চাই। তারপরে আমি ক্লাসগুলিতে প্রকৃত দায়িত্বগুলি অর্পণ করার প্রবণতা করি যা কেবলমাত্র বড় শ্রেণীর ভিতরেই ইনস্ট্যান্ট হয়। সুতরাং আমি লাইনটির খুব কাছেই আছি এবং আমি যখন লিখি তখন ব্যক্তিগত ক্লাসগুলি আরও ছোট করার দিকে ঝুঁকানো উচিত।
jprete
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.