সবচেয়ে গুরুত্বপূর্ণ বিষয়টি মনে রাখতে হবে সেগুলি হ'ল নির্দেশিকাগুলি, বিধি নয়।
এমন কিছু ক্ষেত্রে রয়েছে যেখানে কোনও পদ্ধতিতে কেবল যুক্তি নিতে হবে । +
উদাহরণস্বরূপ সংখ্যাগুলির পদ্ধতি সম্পর্কে চিন্তা করুন । বা add
সংগ্রহের জন্য পদ্ধতি।
প্রকৃতপক্ষে, কেউ যুক্তিও দিতে পারে যে দুটি সংখ্যার যোগ করার অর্থ যা প্রসঙ্গের উপর নির্ভরশীল, যেমন in in 3 + 3 == 6
, তবে ℤ | 5 এ 3 + 3 == 2
, সুতরাং সত্যিই সংযোজন অপারেটরটি একটি প্রসঙ্গ অবজেক্টের একটি পদ্ধতি হওয়া উচিত যা একটি পরিবর্তে দুটি আর্গুমেন্ট গ্রহণ করে সংখ্যার উপর পদ্ধতি যা একটি যুক্তি নেয় method
তেমনি, দুটি বস্তুর তুলনা করার পদ্ধতিটি হ'ল একটি বস্তুর অন্যটিকে আর্গুমেন্ট হিসাবে গ্রহণের পদ্ধতি বা প্রসঙ্গের পদ্ধতি হতে হবে, দুটি বস্তুকে আর্গুমেন্ট হিসাবে গ্রহণ করে, সুতরাং এটির সাথে তুলনা পদ্ধতিটি কেবল বোধগম্য হয় না এক যুক্তির চেয়ে কম
এটি বলেছিল, একটি পদ্ধতির পক্ষে যুক্তি সংখ্যা কমাতে কয়েকটি জিনিস করা যেতে পারে:
- পদ্ধতিটি নিজেই ছোট করুন : সম্ভবত, যদি পদ্ধতিটিতে এমন অনেক যুক্তি প্রয়োজন হয়, তবে এটি খুব বেশি কাজ করছে?
- একটি অনুপস্থিত বিমূর্ততা : যুক্তিগুলি যদি ঘনিষ্ঠভাবে সম্পর্কিত হয়, তবে সম্ভবত সেগুলি একত্রে সম্পর্কিত এবং আপনি যে অনুচ্ছেদে অনুপস্থিত রয়েছেন সেখানে কি? (ক্যানোনিকাল টেক্সট বইয়ের উদাহরণ: দুটি স্থানাঙ্কের পরিবর্তে একটি
Point
বস্তু পাস করুন , বা ব্যবহারকারীর নাম এবং ইমেল পরিবর্তনের পরিবর্তে একটি IdCard
বস্তু পাস করুন ))
- অবজেক্টের স্থিতি : যদি একাধিক পদ্ধতিতে যুক্তির প্রয়োজন হয়, তবে এটি অবজেক্ট স্টেটের অংশ হওয়া উচিত। যদি এটি অন্য কয়েকটি নয় কেবল কয়েকটি পদ্ধতির দ্বারা প্রয়োজন হয় তবে সম্ভবত বস্তুটি খুব বেশি করছে এবং সত্যই দুটি বস্তু হওয়া উচিত।
একটি উপায় হ'ল নতুন ক্লাসে যুক্তিগুলি বের করা, তবে এটি অবশ্যই ক্লাসগুলির বিস্ফোরণ ঘটায়?
যদি আপনার ডোমেন মডেলটিতে বিভিন্ন ধরণের জিনিস থাকে তবে আপনার কোডটি বিভিন্ন ধরণের অবজেক্টের সাথে সমাপ্ত হবে। এতে কোনও ভুল নেই।
এবং এই ক্লাসগুলির নামগুলির কিছু শেষ হওয়ার সম্ভাবনা রয়েছে যা নামকরণের কিছু বিধি লঙ্ঘন করে ("ডেটা" বা "তথ্য" ইত্যাদি দিয়ে শেষ হয়)?
আপনি যদি সঠিক নামটি না খুঁজে পান তবে সম্ভবত আপনি অনেকগুলি যুক্তি এক সাথে তৈরি করেছেন বা খুব কম করেছেন। সুতরাং, আপনার হয় হয় কেবলমাত্র একটি ক্লাসের টুকরো বা আপনার একাধিক শ্রেণি রয়েছে।
অন্য কৌশলটি হ'ল একাধিক ফাংশন দ্বারা ভেরিয়েবলগুলি একটি ব্যক্তিগত সদস্যের ভেরিয়েবলগুলি পাস করা এড়াতে ব্যবহার করা হয়, তবে এটি ভেরিয়েবলের ক্ষেত্রকে প্রসারিত করে, সম্ভবত এটি এমন ফাংশনগুলির জন্য উন্মুক্ত থাকে যা আসলে এটির প্রয়োজন হয় না।
আপনার যদি এমন একটি পদ্ধতির একটি গোষ্ঠী থাকে যা সমস্ত একই আর্গুমেন্টের সাথে চালিত হয় এবং অন্য একটি পদ্ধতি রয়েছে যা না করে, সম্ভবত তারা বিভিন্ন শ্রেণীর অন্তর্ভুক্ত।
নোট করুন আমি "সম্ভবত" শব্দটি কতবার ব্যবহার করেছি? সে কারণেই সেগুলি নির্দেশিকাগুলি, বিধি নয়। 4 পরামিতি সহ আপনার পদ্ধতিটি পুরোপুরি ঠিক আছে!