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

时间:2012-03-26 21:35:18

标签: php design-patterns

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

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

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

但是,虽然您可以将这些方法描述为侦听父类的操作,但这似乎与经典的OOP observer pattern非常不同。

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

1 个答案:

答案 0 :(得分:5)

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