tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^3: 長くなりすぎるプロシージャ名
投稿日: 2008/05/30(Fri) 17:14
投稿者よねKEN
具体的な処理がわからないので一般論になってしまいますが参考までに。

> > メソッド名が無闇に長くなっている場合は、一つのメソッドで複数のことを
> > 行っていないかを見直すとよいと思います。
> 分岐処理を繰り返していますが、されを処理為にたくさんのプロシージャが
> できてしまいました。その意味では ひとつのプロシージャの処理は比較的単純に
> 作ったつもりです。

'イメージ図のため引数は省略。また戻り値の有無もここでは区別しないので仮にSubとしている
Public Sub 処理()
   処理1
   処理2
    :
   処理N
End Sub

Public Sub 処理1()
  処理11
  処理12
    :
  処理1N
End Sub

Public Sub 処理11()
  処理111
  処理112
    :
  処理11N
End Sub

例えば、上記のようなイメージなのだと思いますが、
末端の処理111〜処理11Nが比較的単純だとして、
それを束ねる処理11や処理1は1つの機能だけを実現しているでしょうか?
処理1が複数の機能を備えているとしたら、大元の構造から見直した方がよいかもしれません。

また、例えば、この中で処理111は処理1の中の処理11から呼び出されるわけですが、
処理111は処理1や処理11に依存した内容でしょうか?
依存しない内容であれば、処理1_処理11_処理111という名前にする必要はなく、
単に処理111でよいはずです。

例えば、ある文字列が数値かどうかを判定するメソッドを考えるとき、
Public Function IsNumber(ByVal stringValue As String) As Boolean
のような名前にし、処理1_処理11_IsNumberとは命名しないですよね。

逆に処理1_処理11_処理111という名前にしかならないようなメソッドであれば、
処理1_処理11の中に直接記述すればよいのではないでしょうか?

機能を切り出してメソッド化するときは、呼び出し元のメソッドや
呼び出し元のメソッドから呼び出される他のメソッドに依存してはいけません。
こういうような状況で強引に切り出されるメソッドはたいてい
機能で分割されたメソッドではなく、長い長いメソッドを短く見せかけるためだけに
分割されたものである場合が多いです。短いから良いとは限りません。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。