আপনি যেমনটি বলেছেন, ইভেন্টগুলি ক্লাসগুলির মধ্যে সংযোগ হ্রাস করার দুর্দান্ত সরঞ্জাম; সুতরাং এতে ইভেন্টগুলিতে অন্তর্নিহিত সমর্থন ব্যতীত কিছু ভাষায় অতিরিক্ত কোড লেখা জড়িত থাকতে পারে, তবে এটি বড় চিত্রের জটিলতা হ্রাস করে।
ইভেন্টগুলি বিতর্কিতভাবে ওও-এর অন্যতম গুরুত্বপূর্ণ সরঞ্জাম (অ্যালান কে - মতে বার্তাগুলি প্রেরণ এবং গ্রহণ করে বিষয়বস্তু যোগাযোগ করে )। আপনি যদি এমন কোনও ভাষা ব্যবহার করেন যা ইভেন্টগুলির জন্য অন্তর্নির্মিত সমর্থন করে, বা প্রথম শ্রেণির নাগরিক হিসাবে ফাংশনগুলি ব্যবহার করে, তবে সেগুলি ব্যবহার করা কোনও বুদ্ধিমান নয়।
এমনকি অন্তর্নিহিত সমর্থন ব্যতীত ভাষাগুলিতেও, পর্যবেক্ষক প্যাটার্নের মতো কোনও কিছুর জন্য বয়লারপ্লেটের পরিমাণ মোটামুটি ন্যূনতম। আপনি বয়লারপ্লেট হ্রাস করতে আপনার সমস্ত অ্যাপ্লিকেশনগুলিতে ব্যবহার করতে পারেন এমন কোথাও একটি শালীন জেনেরিক ইভেন্ট লাইব্রেরি খুঁজে পেতে সক্ষম হতে পারেন। (একটি জেনেরিক ইভেন্ট এগ্রিগেটর বা ইভেন্ট মধ্যস্থতাকারী প্রায় কোনও প্রকারের প্রয়োগে কার্যকর)।
এটি একটি ছোট অ্যাপ্লিকেশন সার্থক? আমি অবশ্যই হ্যাঁ বলব ।
- একে অপরের থেকে অদৃশ্য ক্লাস রাখা আপনার বর্গ নির্ভরতা গ্রাফ পরিষ্কার রাখে।
- কোনও কংক্রিট নির্ভরতা ছাড়াই ক্লাসগুলি পরীক্ষায় অন্যান্য শ্রেণীর জন্য বিবেচনা না করে বিচ্ছিন্নভাবে পরীক্ষা করা যেতে পারে।
- কোনও কংক্রিট নির্ভরতা ছাড়াই ক্লাসগুলির সম্পূর্ণ কভারেজের জন্য কম ইউনিট পরীক্ষার প্রয়োজন।
আপনি যদি ভাবছেন "ওহ তবে এটি সত্যিই কেবলমাত্র একটি খুব ছোট অ্যাপ্লিকেশন, এটি আসলে এতটা গুরুত্বপূর্ণ নয়" বিবেচনা করুন:
- ছোট অ্যাপ্লিকেশনগুলি মাঝে মাঝে বড় অ্যাপ্লিকেশনগুলির সাথে মিলিত হয়।
- ছোট অ্যাপ্লিকেশনগুলিতে কমপক্ষে কিছু যুক্তি বা উপাদানগুলি অন্তর্ভুক্ত থাকতে পারে যা পরে অন্যান্য অ্যাপ্লিকেশনগুলিতে পুনরায় ব্যবহার করা প্রয়োজন।
- ছোট অ্যাপ্লিকেশনগুলির জন্য প্রয়োজনীয়তাগুলি পরিবর্তিত হতে পারে, রিফ্যাক্টরের প্রয়োজনের প্ররোচনা দেয়, যা বিদ্যমান কোডটি ডিকোপল করা হলে সহজ হয়।
- অতিরিক্ত বৈশিষ্ট্যগুলি পরে যুক্ত করা যেতে পারে, বিদ্যমান কোডটি প্রসারিত করার প্রবণতাটি জানানো হয়, যা বিদ্যমান কোডটি ইতিমধ্যে decoupled করার পরেও অনেক সহজ।
- আলগাভাবে সংযুক্ত কোড সাধারণত শক্তভাবে সংযুক্ত কোডের চেয়ে বেশি বেশি সময় নেয় না; তবে দৃ tight়ভাবে সংযোজিত কোডটি আলগাভাবে সংযুক্ত কোডের চেয়ে রিফ্যাক্টর এবং পরীক্ষায় অনেক বেশি সময় নেয়।
সামগ্রিকভাবে, কোনও অ্যাপ্লিকেশনের আকারটি ক্লাসগুলি আলগাভাবে একত্রে রাখার বিষয়ে সিদ্ধান্ত নেওয়া উচিত নয়; সলিড নীতিগুলি কেবল বড় অ্যাপ্লিকেশনগুলির জন্য নয়, এগুলি যে কোনও স্কেল সফ্টওয়্যার এবং কোডবেসে প্রযোজ্য।
প্রকৃতপক্ষে, বিচ্ছিন্নভাবে আপনার looseিলে .ালা-দম্পতি শ্রেণীর পরীক্ষার ইউনিটে সময় সাশ্রয় করা উচিত সেই ক্লাসগুলি ডিক্লুপিংয়ে ব্যয় করা কোনও অতিরিক্ত সময়কে পাল্টে ভারসাম্যপূর্ণ করা উচিত।