Interface Segregation Principle
- Sınıflar kullanmak istediği "interface"ler için kullanmayacakları metotları implementasyona zorlanmamalıdır.
Hatalı Örnek
interface Payment {
void payTheBills();❌
void getPaymentMethod();✅
void makePayment();✅
}
class Order implements Payment{
int id;
Date orderDate;
@Override
void payTheBills(){❌
//Bu sınıfta kullanılmayacak
}
@Override
void getPaymentMethod(){✅
//Logic
}
@Override
void makePayment(){✅
//Logic
}
}
Düzeltilmiş Örnek
interface Payment {
void getPaymentMethod();
void makePayment();
}
interface Bill{
void payTheBills();
}
class Order implements Payment{
int id;
Date orderDate;
@Override
void getPaymentMethod(){
//Logic
}
@Override
void makePayment(){
//Logic
}
}