Sobes.tech
Middle+

Arayüzlerin Ayrılması İlkesi (Interface Segregation Principle) prensibi hakkında bilgi veriniz.

sobes.tech yapay zeka

AI'dan gelen yanıt

Arayüzlerin Ayrılması Prensibi (ISP) şunu söyler: müşteriler, kullanmadıkları arayüzlere bağlı olmamalıdır.

Bu, birden fazla küçük ve uzmanlaşmış arayüz oluşturmak yerine, birkaç daha küçük ve özelleştirilmiş arayüz oluşturmanın daha iyi olduğu anlamına gelir. Her müşteri, gerçekten ihtiyaç duyduğu arayüzleri uygulamalıdır.

ISP'yi takip etmenin avantajları:

  • Bağlantının azaltılması: Büyük bir arayüzdeki bir yöntemdeki değişiklikler, bu yöntemi kullanmayan müşterileri etkilemez.
  • Daha esnek kod: Yeni uygulamaları eklemek daha kolaydır, çünkü sadece ihtiyaç duyulan arayüzleri uygulamaları gerekir.
  • Daha iyi okunabilirlik: Arayüzler, belirli sorumlulukları net bir şekilde tanımladığında kod daha anlaşılır hale gelir.

Örnek:

Yerine:

interface Worker {
    void work();
    void eat();
    void sleep();
}

Daha iyi:

interface Workable {
    void work();
}

interface Eatable {
    void eat();
}

interface Sleepable {
    void sleep();
}

O zaman, HumanWorker tüm üçü de uygulayabilir:

class HumanWorker implements Workable, Eatable, Sleepable {
    @Override
    public void work() {
        // ...
    }

    @Override
    public void eat() {
        // ...
    }

    @Override
    public void sleep() {
        // ...
    }
}

Ve sadece Workable olan bir RobotWorker:

class RobotWorker implements Workable {
    @Override
    public void work() {
        // ...
    }
}