Middle+
Rääkige liideste eraldamise põhimõttest (Interface Segregation Principle).
sobes.tech AI
Vastus AI-lt
Liideste eraldamise põhimõte (ISP) ütleb: kliendid ei tohiks sõltuda liidestest, mida nad ei kasuta.
See tähendab, et selle asemel, et luua üks suur liides paljude meetoditega, on parem luua mitu väiksemat ja spetsialiseeritud liidest. Iga klient peaks rakendama ainult neid liideseid, mis talle tõesti vajalikud on.
ISP järgimise eelised:
- Vähendab sidusust: Muudatused ühes suure liidese meetodis ei mõjuta kliente, kes seda meetodit ei kasuta.
- Paindlikum kood: Uute rakenduste lisamine on lihtsam, kuna need peavad rakendama ainult vajalikke liideseid.
- Paranenud loetavus: Kood muutub arusaadavamaks, kui liidesed määratlevad selgelt konkreetsed vastutusvaldkonnad.
Näide:
Asendades:
interface Worker {
void work();
void eat();
void sleep();
}
Paremini:
interface Workable {
void work();
}
interface Eatable {
void eat();
}
interface Sleepable {
void sleep();
}
Seejärel saab klass HumanWorker rakendada kõiki kolme:
class HumanWorker implements Workable, Eatable, Sleepable {
@Override
public void work() {
// ...
}
@Override
public void eat() {
// ...
}
@Override
public void sleep() {
// ...
}
}
Ja ainult Workable rakendav RobotWorker:
class RobotWorker implements Workable {
@Override
public void work() {
// ...
}
}