drupal_alter()使用的设计模式是否有名称?

时间:2013-08-13 15:22:10

标签: oop design-patterns drupal

在Drupal中,drupal_alter()函数使用以下模式:

  1. 您的模块(foo)会生成某种类型的对象,例如提供foo_get()方法。
  2. 在返回对象之前,foo模块会在其上调用drupal_alter()。
  3. drupal_alter()调用其他改变对象的模块提供的钩子(例如bar_foo_alter())。
  4. 返回更改的对象。
  5. 在Drupal中,它用于允许模块扩展由其他模块创建的html表单之类的东西。有关它如何在Drupal中工作的更多信息:http://erikwebb.net/blog/drupal-design-patterns/hooks

    这个设计模式有名字吗?总而言之,必要的标准是:

    • 模块提供了一个生成对象的方法。
    • 任意数量的其他模块可能会在返回之前更改对象。
    • 改变模块仅取决于生产模块。
    • 生产模块不依赖于更改模块。

2 个答案:

答案 0 :(得分:1)

“穷人的依赖注射。” (又名 Ghetto Listener 设计模式。)

答案 1 :(得分:0)

可能类似于装饰器模式吗? http://en.wikipedia.org/wiki/Decorator_pattern