2012-03-26 3 views
4

Viele PHP-Systeme werden Objekttypen (wie zB Modelle) implementieren, die ein Client-Programmierer erlauben, eine Methode in ihren eigenen Klassen so etwas wie dieseBesserer/formaler Name für _beforeFoo Rückruf Design Muster

class Car extends Model 
{ 
    public function _afterSave() 
    { 
     //do something every-time this model is saved 
    } 
} 

In der Dokumentation zu definieren und Tutorials wird dieses Muster normalerweise als "Beobachter/Hörer" -Muster eingeführt.

Sie können diese Methode zwar so beschreiben, dass sie auf Aktionen in der übergeordneten Klasse wartet, dies unterscheidet sich jedoch stark von der klassischen OOP observer pattern.

Gibt es einen formalen Namen des Musters, der es Client-Programmierern erlaubt, diese Art von Vorher/Nachher-Methoden zu definieren, oder waren das nur frühe PHP-Entwickler, bevor die Sprache Java/C# wie OOP entwickelte?

Antwort

5

Unter der Annahme, dass der Aufruf dieser Methoden von Model oder einem anderen Teil des FrameOwrk durchgeführt wird (ich kenne PHP nicht), ist dies das Template-Methode-Muster, wobei die Methoden, die als Erweiterungspunkte dienen, häufig Hooks genannt werden.

+0

Yup, das ist es. Ziemlich sicher, dass dieses Wikipedia-Zitat es deckt "Wenn ein Softwareschreiber eine polymorphe Methode überhaupt verwendet, kann dieses Entwurfsmuster eine ziemlich natürliche Folge sein." –