C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 受け取ったパラメータから行う処理を判断するメソッドの命名


(過去ログ 148 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■86447 / inTopicNo.1)  受け取ったパラメータから行う処理を判断するメソッドの命名
  
□投稿者/ かい (12回)-(2018/01/29(Mon) 22:29:27)

分類:[.NET 全般] 

お世話になっています。
C#WPFを想定しますが、この質問は言語によらないと思っています。
言語や環境によって慣習のようなものはあるかもしれませんが。

掲題の通りです。
switch文の長い総合案内のようなメソッドはよくあるものだと思いますが、
一般的にはどう名付けるものでしょうか。
私はreceiverかprocessorかなと想定しました。

以上です。

引用返信 編集キー/
■86448 / inTopicNo.2)  Re[1]: 受け取ったパラメータから行う処理を判断するメソッドの命名
□投稿者/ よもやま (2回)-(2018/01/30(Tue) 04:05:20)
No86447 (かい さん) に返信
> お世話になっています。
> C#WPFを想定しますが、この質問は言語によらないと思っています。
> 言語や環境によって慣習のようなものはあるかもしれませんが。
> 
> 掲題の通りです。
> switch文の長い総合案内のようなメソッドはよくあるものだと思いますが、
> 一般的にはどう名付けるものでしょうか。
> 私はreceiverかprocessorかなと想定しました。
> 
> 以上です。
> 
電子レンジからの想像で。。。
ChangeCookingMode(int newMode) {
    switch(newMode) {
    }
}
メニュー変化
ChangeMenu(int newMenu)

引用返信 編集キー/
■86449 / inTopicNo.3)  Re[2]: 受け取ったパラメータから行う処理を判断するメソッドの命名
□投稿者/ ぶなっぷ (164回)-(2018/01/30(Tue) 09:16:22)
> C#WPFを想定しますが、この質問は言語によらないと思っています。
言語によらない例ということで、C言語によるWindowsプログラミング。
想定しているのは、こんなコードかな?
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    switch (uMsg) {
    case WM_DESTROY:
        PostQuitMessage(0);
        return 0;
    case WM_CREATE:
        return InitializeWindow((CREATESTRUCT*)lParam);
    }

    return DefWindowProc(hwnd, uMsg, wParam, lParam);
}

この場合だと、Windowのメッセージと言うぐらいしか、まとまりのない case文 の羅列
なので、メソッド名がWindowProc()でいいかなって(笑)

そんな感じで、明確な命名規則というのは、この業界、未だに存在しない気がします。
なので、自然な感じがする程度で良いと思います。

ペットを育成するシミュレーションゲームだとして、
次にペットに与える指示を送るメソッドなら、
  void CPet.メソッド名(指示内容, パラメータ)
  {
     switch(指示内容)
     {
       case えさやり:
         えさ((食べ物)パラメータ);
         break;
       case 散歩:
         散歩((場所)パラメータ);
         break;
       :
     }
  }
みたいな感じでしょうか?
どんなメソッド名にします?

前述通り、正解はないけど、違和感のある不正解に近いものはあると思います。
ペットに指示を与えるのが、このメソッドの目的だから、
  Command()とか、Operate()とか、Receive()とか、...
ならよさげです。かいさんはReceiver()言っておられますが、やはり、C#のような
オブジェクト指向型言語では、クラス名が名詞、メソッド名が動詞というのが基本
だと思うので、Receiver()なら、Receive()が自然な気がします。

あと、似たような感じで、Run()とかも思いつきますが、これ×です。
なぜだか分かりますか?ペットなので、「ペットが走る」意味のRun()と紛らわし
いからです。

このようにソフトウェア化する対象に応じて、臨機応変に分かりやすいネーミング
をするのが、今のところの回答だと思っています。

引用返信 編集キー/
■86450 / inTopicNo.4)  Re[1]: 受け取ったパラメータから行う処理を判断するメソッドの命名
□投稿者/ furu (158回)-(2018/01/30(Tue) 11:38:02)
No86447 (かい さん) に返信
> 掲題の通りです。
「受け取ったパラメータから行う処理を判断する」

このメソッドは、判断した処理のポインタなりを返すまでなのかな。
それならば、「コマンド解析」とか「処理関数取得」とかにするかな。

それとも、処理もしてしまうなら、
「コマンド実行」とか「ボタンクリック処理」とかにします。
引用返信 編集キー/
■86451 / inTopicNo.5)  Re[2]: 受け取ったパラメータから行う処理を判断するメソッドの命名
□投稿者/ 774RR (591回)-(2018/01/30(Tue) 12:00:18)
英語の単語として何が適切か?という話題であるとして

処理を判断するなら dispatch (派遣する、特派する、割り振る)とか

「デザインパターン」のどれかに従うことが可能な文脈ならそのパターン名つけるのが適切っしょ。
ファクトリーパターンでインスタンス生成するとこなら factory とか

そうでないときはセンスの問題になっちゃうよね。
引用返信 編集キー/
■86458 / inTopicNo.6)  Re[3]: 受け取ったパラメータから行う処理を判断するメソッドの命名
□投稿者/ かい (13回)-(2018/01/30(Tue) 22:03:23)
回答して頂き、ありがとうございます。

誤解を招く題であったようで補足しますと、
本メソッドはあくまで判断・呼び出しを行うものであり、
処理そのものは行いません。失礼しました。

皆様の回答を拝読し、学ばせて頂きました。
今一度自分の実装を見直し、役割に応じた、違和感のない名称を考えます。
(wpfなのでcommandは紛らわしいかもしれません、
dispatchはよさそうですが非同期処理用の画面再描写メソッドに名前が似たようなのがあった記憶がありますね
まあ考えさせて頂きます)

こういった実装上よくある、形容し難い問い(ノウハウ?保守テクニック?分類がよくわからない)
にお答えいただき幸いです。どこを見ても無いように思えるので。基本的な命名規則指南等は探せばありますが。

以上です。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -