2

Drupal 内では、drupal_alter() 関数は次のパターンで使用されます。

  1. モジュール (foo) は、たとえば foo_get() メソッドを提供することによって、何らかのタイプのオブジェクトを生成します。
  2. オブジェクトを返す前に、foo モジュールはそれに対して drupal_alter() を呼び出します。
  3. drupal_alter() は、オブジェクトを変更する他のモジュールによって提供されるフックを呼び出します (例: bar_foo_alter()) 。
  4. 変更されたオブジェクトが返されます。

Drupal では、モジュールが他のモジュールによって作成された html フォームを拡張できるようにするなどの目的で使用されます。Drupal での動作の詳細については、http://erikwebb.net/blog/drupal-design-patterns/hooks をご覧ください

このデザインパターンに名前はありますか?要約すると、必要な基準は次のとおりです。

  • モジュールは、オブジェクトを生成するメソッドを提供します。
  • オブジェクトが返される前に、任意の数の他のモジュールがオブジェクトを変更する可能性があります。
  • 変更モジュールは、生成モジュールのみに依存します。
  • 生成モジュールは変更モジュールに依存しません。
4

2 に答える 2

0

デコレータパターンに似たものでしょうか? http://en.wikipedia.org/wiki/Decorator_pattern

于 2013-09-04T21:57:12.397 に答える