ধরা যাক আমার একটি ফাংশন রয়েছে IsAdmin
যা ব্যবহারকারী একজন প্রশাসক কিনা তা যাচাই করে। আসুন আমরা এটাও বলি যে প্রশাসক চেকিং কোনও আইনের বিপরীতে (গুরুত্বপূর্ণ নয়) এর সাথে ব্যবহারকারীর আইডি, নাম এবং পাসওয়ার্ডের সাথে মিলিয়ে করা হয়।
আমার মাথায় তখন এর জন্য দুটি কার্য সম্পাদনের স্বাক্ষর রয়েছে:
public bool IsAdmin(User user);
public bool IsAdmin(int id, string name, string password);
আমি প্রায়শই দ্বিতীয় ধরণের স্বাক্ষরের জন্য যাই, এই ভেবে:
- ফাংশনের স্বাক্ষর পাঠককে আরও অনেক তথ্য দেয়
- ফাংশনের ভিতরে থাকা যুক্তিটির
User
ক্লাস সম্পর্কে জানতে হবে না - এটি সাধারণত ফাংশনের অভ্যন্তরে কিছুটা কম কোডের ফলাফল করে
তবে আমি মাঝে মাঝে এই পদ্ধতির বিষয়ে প্রশ্ন করি এবং এও বুঝতে পারি যে এটি কোনও সময়ে অস্বাস্থ্যকর হয়ে উঠবে। উদাহরণস্বরূপ যদি কোনও ফাংশন দশটি পৃথক অবজেক্ট ক্ষেত্রের মধ্যে একটি ফলাফল হিসাবে চিহ্নিত হয় তবে আমি স্পষ্টতই পুরো বস্তুটিতে প্রেরণ করব। তবে এর মতো নিখুঁত উদাহরণ ছাড়াও আমি প্রকৃত বস্তুটিতে পাস করার কারণ দেখতে পাচ্ছি না।
আমি উভয় শৈলীর জন্য যে কোনও যুক্তি, পাশাপাশি আপনার দেওয়া সাধারণ পর্যবেক্ষণের প্রশংসা করব।
আমি উভয় অবজেক্ট ওরিয়েন্টড এবং কার্যকরী শৈলীতে প্রোগ্রাম করি, সুতরাং প্রশ্নটি কোনও এবং সমস্ত আইডিয়া সম্পর্কিত হিসাবে দেখা উচিত।