古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net (835レス)
古代VBプログラマ質問スレ(Ver.6.0 まで) part65 [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/tech/1440930335/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
261: デフォルトの名無しさん [sage] 2015/12/11(金) 07:04:04.42 ID:sydzYF+G お前ら教えろください 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか? 直感的にダメな気がするんですが、なぜダメなのか説明出来ません どちらにしても誰か理由を説明出来る人いますか? 教えてエロい人 http://mevius.5ch.net/test/read.cgi/tech/1440930335/261
270: デフォルトの名無しさん [sage] 2015/12/11(金) 10:42:52.95 ID:z9XcLK7w >>261 > 同じフォーム内にあるメソッドから〜_Clickみたいなイベントを呼び出すのってアリですか? なし > 直感的にダメな気がするんですが、なぜダメなのか説明出来ません その直感は正しいよ。理由はいくつか有る。 まず、一般的にフォームというのはユーザーの入力と処理を結びつけるためにある。 結びつけるだけなのでなるべくフォームに処理は書かない。 処理はフォームとは別に(ビジネスロジック用の)クラスに分離する。 このクラスはフォーム関連コードは一切ない。これにより自動テストがしやすくなる。 このように分離するので、二つのイベントハンドラから、共通のクラスのメソッドを呼び出すので _Clickを直接呼び出すことはない。 これが大きな理由では有るんだが、クラスを使うほどじゃない場合でも 処理はprivateメソッドに書いて、内部的には処理と結びつけるコードは分離させておいたほうがいい。 それから、もう少しわかりやすい理由として、依存関係の話がある。 _Clickというのは、ボタンだったりするわけだが、そのボタンの存在に処理が依存しているのか?ということ。 通常はボタンには依存していないだろう。仮にボタンをなくしたとしても、処理の内容は変わらないだろう? だが、_Clickを呼ぶと処理の中にそのボタンが紛れ込んでしまってるわけだ。こういうふうに 余計なものが混ざるとUIを変更した時の影響範囲が大きくなる。 どちらにも共通することは、その責任が明確に分離されていること。単一責任の原則とも言われている。 自分の担当範囲の処理だけを行うことで、それぞれの処理がシンプルになる。 絡み合わせる必要が無いものを、絡み合わせてはいけない。 http://mevius.5ch.net/test/read.cgi/tech/1440930335/270
271: デフォルトの名無しさん [sage] 2015/12/11(金) 12:14:45.33 ID:l7b7OwtU >>261 お前さんの直感は正しくて基本的には良いことじゃないけど、まあ程度問題ではある。 良いことじゃない理由は、メソッドの名前と実態が乖離するから。 (ボタンがクリックされた時に呼ばれるはずのメソッドが、それ以外の時にも呼ばれることになる) これは、「イベントハンドラが呼ばれるのはイベントが発生した時だけだ」という前提でコードを読んでいる プログラマの期待を裏切ることになる。 程度問題なのは、そうは言っても十分短いコードなら上記の前提が正しくないことに プログラマは気づくことができる。 http://mevius.5ch.net/test/read.cgi/tech/1440930335/271
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.049s