pl: Single-Responsibility-Prinzip für PHP?

Beitrag lesen

Tach!

Der Hauptvorteil von OOP besteht darin, daß sie besser mit Veränderungen umgehen kann.

Genau das ist das Ziel von SRP, dass Änderungen einfacher sind, weil eine Funktionseinheit nur genau einen Grund hat, sie ändern zu müssen.

Was in der Konsequenz aber lange Wege zur Folge hat insbesondere hinsichtlich Debugging. Das Problem herauszufinden in welcher Datei eine bestimmte Methode definiert ist, zeigt sich umso mehr, je tiefer eine Klassenhierarchie ist. Sicher wird man bei der am weitesten unten liegenden Erweiterung die Suche beginnen aber was dem entgegenkommt ist ja von vornherein der Entwurf einer flachen Klassenhierarchie.

Insgesamt jedoch sehe ich aber auch darin keinen Widerspruch der nicht lösbar wäre. Richtig dumm wirds nur, wenn man Entwurfsmuster oder bestimmte Prinzipien zum Leitsatz erhebt, beispielsweise derart daß man strikt nach SRP entwickeln will. Perls tie() folgt scheinbar diesem Prinzip, so ruft jeder Zugriff auf ein Arrayelement eine Funktion auf, von der Wertzuweisung über den Iterator bis zur Herausgabe eines bestimmten Wertes ist alles in jeweiligen Funktionen definiert.

Der Grund für die Entwicklung von tie() ist jedoch nicht SRP an sich sondern ein ganz Anderer, nämlich das Binden von Variablen an Klassen. Von daher muß es eine für jeden Zugriff spezialisierte Methode geben weil man die Bindung gar nicht anders realisieren kann.

MfG