2009-07-01 10 views
0

私は今、いくつかのコードを理解しようとしています。私は少し奇妙なパターンを見つけました。 'EditorOpen'イベントを持つユーザーのコントロールクラスがあります。最初は、この名前が間違っていると思っていました。なぜならMSDNの示唆しているように、 '-ing'または '-ed'で終わらないからです。しかし、後で私は、この出来事が何か起こっているかどうかを知らせていないことを知りましたが、実際の操作を行うのはむしろ何らかの要求です。これはクライアントコードで、「エディタを開く」を実行することが期待されています!C#イベント経由でテンプレートメソッドパターンを実装するのがよい方法ですか?

これは、実際には単一のアクションプレースホルダに接続された複数のアクションが存在するテンプレートメソッドデザインパターンの形式であることがわかりました。

私はそれは非常に興味深いと思いますが、このような場合にイベントを使用すると誤解を招く恐れがあります。とにかく、ここではイベントについては言及していませんが、REQUESTSについては言います。うーん...もしイベントの名前が 'EditorOpeningRequest'か 'EditorOpeningRequested'だったら、それは大丈夫だろう。どう思いますか?コードレビュー中にこれをどのようにコメントしますか?

答えて

1

エディタを開くためのリクエストを処理するオブジェクトが複数あることが非常に良い理由がない限り、イベントではなくデリゲートにすることをお勧めします。これにより、リクエストのハンドラを1つに限定することができます。この場合は、より論理的です。

さらに名前をOpenEditorに変更します。これは、期待していることをより分かりやすく説明するためです。イベントモデルに固執すれば、OpenEditorRequestedがより良い名前になるかもしれません。

HTH。