কখনও কখনও (খুব কমই) মনে হয় যে কোনও ফাংশন তৈরি করা যা শালীন পরিমাণের প্যারামিটার লাগে এটি সর্বোত্তম রুট।
বেশ কয়েকটি পরামিতি ব্যবহার করা প্রায়শই একটি পরিষ্কার সূচক, আপনি এই পদ্ধতিতে এসআরপি লঙ্ঘন করেন । একটি পদ্ধতি, যার অনেকগুলি পরামিতি প্রয়োজন কেবলমাত্র একটি কাজ করার সম্ভাবনা নেই । এক্সপিশন একটি গাণিতিক ফাংশন বা একটি কনফিগারেশন পদ্ধতি হতে পারে, যেখানে প্রকৃতপক্ষে বেশ কয়েকটি পরামিতি প্রয়োজন। আমি একাধিক পরামিতি এড়িয়ে যাব কারণ শয়তান পবিত্র জল এড়িয়ে চলে। আপনি কোনও পদ্ধতির মধ্যে যত বেশি প্যারামিটার ব্যবহার করেন, সম্ভাবনা তত বেশি, যে পদ্ধতিটি খুব জটিল complex আরও জটিলতার অর্থ: বজায় রাখা শক্ত এবং এটি কম পছন্দসই।
যাইহোক, আমি যখন করি তখন আমার মনে হয় আমি প্রায়শই এলোমেলোভাবে পরামিতিগুলির ক্রম পছন্দ করি। আমি প্রথমে সবচেয়ে গুরুত্বপূর্ণ পরামিতিটি সহ "গুরুত্বের অর্ডার" দিয়ে যাই।
প্রিন্সিপালে আপনি এলোমেলোভাবে বেছে নিচ্ছেন । অবশ্যই আপনি ভাবতে পারেন প্যারামিটার এ পরামিতি বি এর চেয়ে বেশি প্রাসঙ্গিক ; তবে এটি আপনার এপিআই এর ব্যবহারকারীদের ক্ষেত্রে নাও হতে পারে, যারা বি সবচেয়ে প্রাসঙ্গিক প্যারামিটার বলে মনে করেন। এমনকি যদি আপনি অর্ডারটি বেছে নিতে মনোযোগী হন - অন্যের জন্য এটি এলোমেলো মনে হতে পারে ।
এই কাজ করতে একটি ভাল উপায় আছে কি? প্যারামিটারগুলি অর্ডার করার কোনও "সেরা অনুশীলন" পদ্ধতি রয়েছে যা স্বচ্ছতা বাড়ায়?
বেশ কয়েকটি উপায় রয়েছে:
ক) তুচ্ছ ঘটনা: একাধিক প্যারামিটার ব্যবহার করবেন না।
খ) আপনি নির্দিষ্ট না করে, কোন ভাষাটি আপনি বেছে নিয়েছেন, তার সম্ভাবনা রয়েছে, আপনি নামী পরামিতি সহ একটি ভাষা বেছে নিয়েছিলেন । এটি দুর্দান্ত সিনট্যাকটিক চিনি যা আপনাকে পরামিতিগুলির ক্রমটির তাত্পর্যটি আলগা করতে দেয়:fn(name:"John Doe", age:36)
প্রতিটি ভাষা এই জাতীয় চমত্কার অনুমতি দেয় না। তাহলে কি?
গ) আপনি অভিধান / হাশম্যাপ / সহযোগী অ্যারেটি প্যারামিটার হিসাবে ব্যবহার করতে পারেন : যেমন জাভাস্ক্রিপ্ট নিম্নলিখিতটির অনুমতি দেবে: fn({"name":"John Doe", age:36})
যা (খ) থেকে খুব বেশি দূরে নয়।
d) অবশ্যই যদি আপনি জাভার মতো স্ট্যাটিকালি টাইপ করা ভাষা নিয়ে কাজ করেন । আপনি একটি হ্যাশম্যাপ ব্যবহার করতে পারেন , তবে HashMap<String, Object>
পরামিতিগুলির বিভিন্ন ধরণের (এবং cast ালাই প্রয়োজন ) যখন আপনি টাইপ-ইনফরমেশন (যেমন কাজ করার সময় ) আলগা করে ফেলতেন ।
পরবর্তী যৌক্তিক পদক্ষেপটি হ'ল কোনও Object
(যদি আপনি জাভা ব্যবহার করছেন) যথাযথ বৈশিষ্ট্য সহ স্ট্রাক্টের মতো আরও হালকা কিছু (আপনি যদি উদাহরণস্বরূপ সি # বা সি / সি ++ লিখেন ) দিয়ে পাস করুন ।
চলতি নিয়ম:
1) সেরা ক্ষেত্রে - আপনার পদ্ধতির কোনও প্যারামিটার দরকার নেই
2) ভাল কেস - আপনার পদ্ধতির জন্য একটি প্যারামিটার প্রয়োজন
3) সহনীয় ক্ষেত্রে - আপনার পদ্ধতির দুটি পরামিতি প্রয়োজন
4) অন্যান্য সমস্ত ক্ষেত্রে রিফ্যাক্টর করা উচিত
MessageBox.Show
। পাশাপাশি এটি দেখুন।