- PR -

シグネチャが同一なイベントのハンドラプロシージャ

投票結果総投票数:47
すべき 0 0.00%
コード量が減るのでOK 2 4.26%
考え方がおかしいだろ 41 87.23%
気にすることではない 4 8.51%
  • 投票は恣意的に行われます。統計的な調査と異なり、投票データの正確性や標本の代表性は保証されません。
  • 投票結果の正当性や公平性について、@ITは一切保証も関与もいたしません。
投稿者投稿内容
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-09-27 15:42
お世話になっております。

例えば、ClickとDoubleClickはシグネチャが同一なわけですが
次のようなイベントプロシージャを認めますか?
コード:

Private Sub Label1_ClickOrDoubleClick(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Label1.Click, Label1.DoubleClick

End Sub



私は「きっかけ」が異なるのでそうなってたら「一緒にするな」と言うほうですが
今の請負のコーディング標準が「まとめろ!」となっていたので
ご意見を伺いたいと思いました。

※実例
リストビューのダブルクリック時に明細の変更ボタンが押されたのと同じ挙動する仕様で
リストビューのダブルクリックにbtnModify.PerformClick()を書いていたら
「まとめろ!」と言われた。

#実例を追加 16:38

[ メッセージ編集済み 編集者: まどか 編集日時 2006-09-27 16:37 ]
Ahf
大ベテラン
会議室デビュー日: 2006/08/16
投稿数: 172
投稿日時: 2006-09-27 15:49
社内のフレームワーク的なものを作ろうとした場合に同じ話が出てきたりしますね。
利用しているコンポーネントによっては、同じシグネチャで別イベント名があったり
その逆(別シグネチャで同じイベント名)もあったりしますね。

目的が「コーディングをまとめる」ということであればOKかな、と個人的には思います。

#好き嫌いで言えばデフォルトで用意されているイベント名は使いたくないですが
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-09-27 15:57
引用:

まどかさんの書き込み (2006-09-27 15:42) より:

例えば、ClickとDoubleClickはシグネチャが同一なわけですが
次のようなイベントプロシージャを認めますか?


「考え方がおかしいだろ」 に投票させて頂きました。

イベントの概念からすると違和感があります。(まどかさんと同じ意見です)
ゆえに、個々のプロシージャから、同じメソッドを呼び出した方が良いと考えます。

逆にまとめた時の利点は、コードが簡素化できる程度のものと思っています。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
ぶさいくろう
ぬし
会議室デビュー日: 2005/11/22
投稿数: 1232
お住まい・勤務地: 川崎市(は俺も含めてロクな人間が住んでないよw)
投稿日時: 2006-09-27 16:02
質問の意味を取り違えていたので削除・・・

違う名前(起こるタイミングが違う)のイベントを統合するのは許せないな。

[ メッセージ編集済み 編集者: ぶさいくろう 編集日時 2006-09-27 16:04 ]
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2006-09-27 17:06
引用:

まどかさんの書き込み (2006-09-27 15:42) より:
リストビューのダブルクリック時に明細の変更ボタンが押されたのと同じ挙動する仕様で


私は、リストビューのダブルクリックと明細の変更ボタンが押されたのと同じ挙動をするなら、まとめるという作り方もありかな〜と思います。

この「同じ挙動」という表現について誤解のないように説明しますが、
「リストビューのダブルクリックの時にAの処理をする」
「変更ボタン押下の時にAの処理をする」
というような仕様になっている場合はまとめちゃだめです。
これは、ユーザーがAの処理を指示する方法としてたまたまリストビューのダブルクリックとボタンの押下という2つの方法を割り当てているだけだからです。
「変更ボタン押下の時にAの処理をする」
「リストビューのダブルクリックの時に変更ボタンを押下と同じ挙動をする」
という仕様ならまとめるという方法もあり・・・かも。

私はやらないと思いますが。
まどか
ぬし
会議室デビュー日: 2005/09/06
投稿数: 372
お住まい・勤務地: ますのすし管区
投稿日時: 2006-09-27 17:18
引用:

一郎さんの書き込み (2006-09-27 17:06) より:

「リストビューのダブルクリックの時にAの処理をする」
「変更ボタン押下の時にAの処理をする」
というような仕様になっている場合はまとめちゃだめです。
これは、ユーザーがAの処理を指示する方法としてたまたまリストビューのダブルクリックとボタンの押下という2つの方法を割り当てているだけだからです。


おっしゃりたいことは理解できますが、実際の例が思い浮かばない。。。です。
というか、それぞれのイベントハンドラがあるとして
片方でPerformClickを書いていい場合とだめな場合があるよ、ということですよね?

[ メッセージ編集済み 編集者: まどか 編集日時 2006-09-27 17:20 ]
saki1208
ベテラン
会議室デビュー日: 2006/08/22
投稿数: 86
投稿日時: 2006-09-27 18:55
引用:

じゃんぬねっとさんの書き込み (2006-09-27 15:57) より:
「考え方がおかしいだろ」 に投票させて頂きました。

イベントの概念からすると違和感があります。(まどかさんと同じ意見です)
ゆえに、個々のプロシージャから、同じメソッドを呼び出した方が良いと考えます。




激しく同意します。

作ってる最中ならまだしも、直感的に解り難く変更があった場合にも余計な手間が
かかりそうな気がします。
他人の書いたそんなソースを見たら激怒しそうな予感。
マーサ
ベテラン
会議室デビュー日: 2004/11/26
投稿数: 87
投稿日時: 2006-09-27 19:02
引用:

一郎さんの書き込み (2006-09-27 17:06) より:

「リストビューのダブルクリックの時にAの処理をする」
「変更ボタン押下の時にAの処理をする」

〜〜〜〜〜〜

「変更ボタン押下の時にAの処理をする」
「リストビューのダブルクリックの時に変更ボタンを押下と同じ挙動をする」



前者は2つのイベント発生時にAの処理を行う、後者は2つのイベント発生時に同じ処理をすると言っていると思います。
前者は間接的であり、後者は直接的だと私は捉えました。
#上記は設計者の思惑と技術者の捉え方・スキルにより、多少違いが出るかも知れませんね。

しかしながら、あくまでもイベントの発生源は違うわけですから、Aメソッドを作成しそれを利用する方法が綺麗なコーディングと私は考えます。
#もしも、仕様変更等発生したらどうするのでしょうね?w

スキルアップ/キャリアアップ(JOB@IT)