_beforeFoo回调设计模式的更好/正式名称

Ala*_*orm 4 php design-patterns

许多PHP系统将实现对象类型(例如模型),允许客户端程序员在他们自己的类中定义类似这样的方法

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

在文档和教程中,这种模式通常作为"观察者/监听者"模式引入.

但是,虽然您可以将这些方法描述为侦听父类的操作,但这似乎与传统的OOP 观察者模式非常不同.

是否存在允许客户端程序员定义这些前/后方法的模式的正式名称,或者这只是早期PHP开发人员在语言开发其类似OOP的java/C#之前开辟的东西?

tca*_*vin 5

假设调用这些方法是由Model或frameowrk的其他部分(我不知道PHP)执行的,这就是模板方法模式,其中作为扩展点的方法经常被称为钩子.