プロが教える店舗&オフィスのセキュリティ対策術

#注)この質問は下記のリンク先の質問の続きとなります。
#未読の方はリンク先をお読みくださいませ。

#自作したメソッド・・・引数はなるべく省略すべき?(VB2005)
http://oshiete1.goo.ne.jp/qa3409289.html



仮に、フォームにボタンが複数個あり(Name = btnA,btnB,btnC…)、いずれかのボタンをクリックすると、共通処理のモジュール「shori」を呼び出すプログラムを想定します。

  コード
  ------------------------------------------------
  Private Sub btnA_Click()
    Dim hoge As integer = Phoge 'a)プロパティの値を設定
    Dim foo As integer = Pfoo  'b)
    Dim bar As integer = Pbar  'c)
    Call syori(hoge,foo,bar)
  End Sub
  
  Private Sub btnB_Click()
    Dim hoge As integer = Phoge 'a)プロパティの値を設定
    Dim foo As integer = Pfoo  'b)
    Dim bar As integer = Pbar  'c)
    Call syori(hoge,foo,bar)
  End Sub
   :
   :
  
  Private Sub shori()    'ボタンクリックイベントの共通処理
    'd) 処理
  End Sub
  ------------------------------------------------

引数を省略しない形だと、(a)~(c)のコードを、全てのボタンのClickイベントに書き込むことになり、コードが煩雑になります。こういった場合、引数を省略する形、つまり(a)~(c)のコードを(d)の箇所へ書き込む手法は積極的に行うべきでしょうか?(Call文の形は、syori() となる)
ご助言よろしくお願い致します。

A 回答 (1件)

全てのボタンでhoge、foo、barが同一の設定であるならば、省略するべきです。


その場合の最良の対応は、VBではできなかったかもしれませんが、コールバックのメソッドを統一することでしょう。

ですが、将来的にでも同一設定ではなくなる可能性があるならば、引数として渡すべきでしょう。

個人的には、メソッドの用途が限定的であるならば、あえて汎用性を持たせる必要はないと思っています。
必要のない、将来使用するアテもない機能を持たせると、後々メンテしにくくなることもあります。
モジュール化において汎用性は重要ですが、メソッドの機能は想定される必要充分なものに限定するべきだと思います。(逆に言えば、汎用性を持たせる必要がある場合は、大量の引数も辞さずということです)
    • good
    • 0
この回答へのお礼

sgwjnさん
詳細な解説ありがとうございます。
やはり省略すべきですか。
大変参考になりました。
ご回答ありがとうございました。

お礼日時:2007/10/13 07:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!