Sobes.tech
Middle+
173

Beszéljen az interfészek szétválasztásának elvéről (Interface Segregation Principle).

Válasz az MI-től

sobes.tech MI

Az interfészek szétválasztásának elve (ISP) kimondja: az ügyfelek nem függhetnek olyan interfészektől, amelyeket nem használnak.

Ez azt jelenti, hogy egy nagyobb, sok módszert tartalmazó interfész helyett jobb több kisebb és specializáltabb interfészt létrehozni. Minden ügyfél csak azokat az interfészeket valósítsa meg, amelyekre valóban szüksége van.

Az ISP betartásának előnyei:

  • Csökkentett kapcsolódás: Egy nagy interfész egyik módszerében történt változás nem érinti azokat az ügyfeleket, akik nem használják ezt a módszert.
  • Rugalmasabb kód: Könnyebb új implementációkat hozzáadni, mivel csak a szükséges interfészeket kell megvalósítani.
  • Javított olvashatóság: A kód áttekinthetőbb lesz, amikor az interfészek világosan meghatározzák a konkrét feladatokat.

Példa:

Ahelyett, hogy:

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

Jobb:

interface Workable {
    void work();
}

interface Eatable {
    void eat();
}

interface Sleepable {
    void sleep();
}

Ezután a HumanWorker megvalósíthatja mindhárom:

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

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

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

És egy RobotWorker csak Workable:

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