2012-03-26 8 views
4

多くのPHPシステムは、独自のクラスで文書には、このベター/正式名称

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

ような何かをする方法を定義するには、クライアントのプログラマを許可する(そのようなモデルなど)のオブジェクト型を実装し、チュートリアルでは、このパターンは通常「オブザーバー/リスナー」パターンとして導入されます。

ただし、これらのメソッドを親クラスのアクションをリッスンするものとして説明できますが、これは古典的なOOP observer patternとは非常に異なるものです。

クライアントプログラマがこれらの種類の前後メソッドを定義するための正式な名前がありますか?それとも、PHP開発者が言語のJava/C#をOOPのように開発する前に、

答えて

5

モデルやフレームワークの他の部分(私はPHPを知らない)によってこれらのメソッドの呼び出しが行われると仮定すると、テンプレートメソッドパターンであり、頻繁にフックと呼ばれる拡張ポイントとして機能するメソッドがあります。

+0

うん、そうだ。このウィキペディアの見積もりでは、「ソフトウェア作家が多態的な方法をまったく使用していれば、このデザインパターンはむしろ自然な結果になるかもしれません。 –