Skip to content

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
    }
}