Das Interface-Segregation-Prinzip
摘要
Keine Klasse sollte Methoden implementieren müssen oder von Methoden abhängen, die sie nicht nutzt. Entsprechend sollten Schnittstellen abstrakter Klassen minimal sein. Es gibt Situationen, in denen eine Klasse unterschiedliche Schnittstellen für unterschiedliche Akteure bereitstellen muss. Hier kommt das Interface‐Segregation‐Prinzip (ISP) zum Tragen. Eine Änderung der Schnittstelle erzwingt eine Änderung seines Nutzers. Umgekehrt können aber auch Nutzer Änderungen an einer Schnittstelle erzwingen. Besitzt eine Klasse mehrere Schnittstellen für unterschiedliche Nutzer, dann führt das zu einer Kopplung an sich getrennter Akteure. Genau hier setzt das ISP mit seiner Idee an, Schnittstellen aufzutrennen und für einen Akteur jeweils nur eine minimale, absolut notwendige Schnittstelle bereitzustellen, die zudem von allen anderen Schnittstellen abgeschottet (gekapselt) ist. Diese Entkopplung macht den Code übersichtlicher und sorgt für Flexibilität, Wiederverwendbarkeit und Wartbarkeit.