【问题标题】:Better/Formal Name for _beforeFoo Callback Design Pattern_beforeFoo 回调设计模式的更好/正式名称
【发布时间】:2012-03-28 20:41:10
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: php design-patterns


    【解决方案1】:

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

    【讨论】:

    • 是的,就是这样。很确定这个维基百科引用涵盖了它“如果软件作者使用多态方法,这种设计模式可能是一个相当自然的结果。”
    猜你喜欢
    • 1970-01-01
    • 2011-01-13
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 2011-08-24
    • 1970-01-01
    • 2011-05-11
    相关资源
    最近更新 更多