ইন্টারফেস পৃথককরণের নীতি অনুসারে যে কোনও ক্লায়েন্টকে এটি ব্যবহার না করে এমন পদ্ধতির উপর নির্ভর করতে বাধ্য করা উচিত নয়, সুতরাং ক্লায়েন্টকে তার ইন্টারফেস পদ্ধতির জন্য একটি খালি পদ্ধতি প্রয়োগ করা উচিত নয়, অন্যথায় এই ইন্টারফেস পদ্ধতিটি অন্য ইন্টারফেসে রাখা উচিত।
তবে কংক্রিট পদ্ধতি সম্পর্কে কীভাবে? প্রত্যেক ক্লায়েন্ট ব্যবহার না করে এমন পদ্ধতিগুলি কি আমার আলাদা করা উচিত? নিম্নলিখিত শ্রেণীর বিবেচনা করুন:
public class Car{
....
public boolean isQualityPass(){
...
}
public int getTax(){
...
}
public int getCost(){
...
}
}
public class CarShop{
...
public int getCarPrice(int carId){
Car car=carList[carId];
int price=car.getTax() + car.getCost()... (some formula);
return price;
}
}
উপরের কোডে, কার্শপ কারে মোটেও পদ্ধতিটি কোয়ালিটিপাস () ব্যবহার করে না, আমি কি কিউসপাসটি () কে নতুন শ্রেণিতে বিভক্ত করব:
public class CheckCarQualityPass{
public boolean isQualityPass(Car car){
}
}
কারশপের মিলন কমাতে? কারণ আমি একবারে মনে করি যদি আইকুয়েলটিপাস () এর অতিরিক্ত নির্ভরতার প্রয়োজন হয়, যেমন:
public boolean isQualityPass(){
HttpClient client=...
}
কারশপ এইচটিটিপিপ্লিনেন্টের উপর নির্ভর করবে এমনকি এটি কখনও কখনও HTTPClient ব্যবহার করে না। সুতরাং আমার প্রশ্নটি হ'ল: ইন্টারফেস-বিভাজন নীতি অনুসারে, আমি কি কংক্রিটের পদ্ধতিগুলি পৃথক করব যা প্রতিটি ক্লায়েন্ট ব্যবহার করবে না, যাতে এই পদ্ধতিগুলি কেবল ক্লায়েন্টের উপর নির্ভর করে যখন ক্লায়েন্ট প্রকৃতপক্ষে সংযোগ হ্রাস করতে পারে?
Car
বর্গ যে আপনি চান না (সমস্ত) ব্যবহারকারীদের জানতে সম্পর্কে তারপর (একটির বেশি) তৈরি ইন্টারফেস যে Car
বর্গ কার্যকরী একটি যা শুধুমাত্র ইন্টারফেসগুলি প্রেক্ষাপটে দরকারী পদ্ধতি ঘোষণা।