C#のイベントを通じてTemplate Methodパターンを実装することをお勧めしますか?

StackOverflow https://stackoverflow.com/questions/1068497

質問

私は今、いくつかのコードを理解しようとしていると私は私には少し奇妙に見えるパターンを、発見しました。 「EditorOpen」イベントでのユーザのコントロールクラスがあります。最初は、私は、MSDNのとおり、それは、「-ing」または「-ed」で終わっていないので、この名前は、間違っていると思いました。しかし、後で私はこのイベントが起こって何かについて通知しないこと、を見出したが、それはむしろ、実際の操作を行うための要求のいくつかの種類です。これは、「エディタを開く」を実行するために期待されているクライアントコード、です!

私は、これは実際には単一のアクションプレースホルダに接続された複数のアクションがあることが可能なテンプレートメソッドデザインパターンのいくつかの形態であることを見つけるには少し驚きました。

私はそれは非常に興味深いと思いますが、私はまた、このような場合にイベントを使用することは非常に誤解を招く可能性があることを恐れています。とにかく、我々はなく、要求に関する、ここではイベントについての話をされていません。イベントの名前だけが「EditorOpeningRequest」または「EditorOpeningRequested」だった場合フム...多分それは、大丈夫でしょう。どう思いますか?どのようにコードレビュー中にこのコメントのでしょうか?

役に立ちましたか?

解決

エディタを開くための要求を処理する複数のオブジェクトを持っているために非常に良い理由がある場合を除き、私は、デリゲートの代わりに、イベントでなければなりません示唆しています。これは、この場合には、より論理的と思われる要求、のいずれかのハンドラを持つにあなたを制限します。

これはあなたが期待するつもりだものに、より説明的であるとして、また、より多くの私はOpenEditorに名前を変更します。あなたはイベントモデルに固執するならば、その後、OpenEditorRequestedが良い名前かもしれません。

HTHます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top