ここにコードがあります...私の場合、else文は非常に長いです...それをどうやって分割するのですか?なにか提案を?ありがとうございました。このコードをより整理しやすくするには
答えて
私は、それが求められている場合、長いif/else文について根本的に間違っていることはありません。
あなたが目障りだと思っているなら、if/elseブロックの内容をそれ自身の機能として定義するだけではどうですか?
冗長性を排除することも考えられます。それらがすべて末尾にある場合は、
$aMsg = new RespondLoginMsg();
$this->sendMsg($aMsg);
となります。ブロックごとに繰り返す必要はありません。
おそらくスイッチが読みやすくなりますか?そしてSENDMSGはそれのうちいずれかの方法を移動し、ちょうど私が表示されていない過度の間隔と改行を取り除く以外
$strMessageClass=get_class($aMsg);
switch ($strMessageClass) {
case 'LoginMsg':
$this->callingSomeMethod();
$aMsg = new RespondLoginMsg();
case 'RespondLogoutMsg':
$this->callingAnotherMethod();
$aMsg = RespondLogoutMsg();
default:
// If you have any..
}
$this->sendMsg($aMsg);
..場合は/あなたはswtichに設定$ AMSGオブジェクトを使用することができ何が問題なの?アイテムがインスタンスかどうかを確認するには、いくつのクラスが必要ですか?このリストはかなり限られていると私には思えます。 3つまたは4つ以上のif/elseステートメントがない場合は、if/elseステートメントをそのまま使用してください。それ以外の場合は、スイッチまたはループを使用します。
達成しようとしていることを具体的にすることはできますか?
ここでは、コードのややクリーンなバージョンです。
public function receiveMsg(aMsg) {
if ($aMsg instanceof LoginMsg) {
$this->callingSomeMethod();
$this->callingAnotherMethod();
$aMsg = new RespondLoginMsg();
$this->sendMsg($aMsg);
}
else if (aMsg instanceof LogoutMsg) {
$this->callingSomeMethod();
$aMsg = new RespondLogoutMsg();
$this->sendMsg($aMsg);
}
else if { /*****bababab***/
}
/*****many else if here***/
}
私はソースコードをカットして、私は200までのメッセージを持っています....彼らは同様の方法で動作するので、私はちょうどいくつかをコピーし、ここに投稿します。 – Tattat
最大200種類のメッセージがありますか?私はそのタイプについて話しているからです。それは200種類のクラスがあることを意味します。それは過剰です。おそらく、1つのメッセージクラスを作成し、そのクラスの各メッセージタイプに対して関数を作成するだけです。次に、タイプをチェックし、適切な関数を呼び出すループを作成するだけです。この関数は必要なすべてのサブコールを作成します。そうすれば、あなたはこの機能にそれを入れる必要はありません。コードをよりクリーンに保ち、再利用可能にします。 – pthurmond
- 1. Dreamweaverでコードを自動整理して、より読みやすくする方法
- 2. PHPコードを整理するには?
- 3. PHP MySQLどのようにこのコードを整理するのですか?
- 4. Drupalコードを整理する
- 5. どのようにこのPHPコードをやりますか?
- 6. ユーザーが投稿したテキストを整理して読みやすくすることができますか?
- 7. クライアント/サーバーゲームのコードを整理する
- 8. 私のコードを整理するC#
- 9. GTKmmアプリケーションのコードを整理する
- 10. 整理コード
- 11. このjavascriptをオブジェクト指向のバックグラウンドから読みやすく、維持し、理解しやすくするにはどうすればよいですか?
- 12. guiコードをCで整理する#
- 13. c#WindowsPhoneピボットアプリケーションでコードを整理する
- 14. unix bashスクリプトでコードを整理する
- 15. 約束コードを整理する
- 16. 私はmallocをやり直す方法を細かく調整します
- 17. .NETの#region /#endregionに似たコードを整理する方法は?
- 18. どのHTMLパーサがこのコードを整理できますか?
- 19. コードの整理に問題があります
- 20. 私はこのようになりパイソンストリーム処理コードを有する
- 21. Gridsterグリッドをより整理するために配置する
- 22. このコードをもっとコンパクトで読みやすくするには?
- 23. このデータはどのように整理できますか?
- 24. このコードからより多くの人にメールを送信するには?
- 25. このRubyコードをより簡潔に書くことはできますか?
- 26. このC#コードを理解すると、エントロピーの理論ではなく、コードだけを意味する
- 27. これらの2つの連続したIF文をより良く整理するにはどうすればよいですか?
- 28. mvc3でビューモデルを整理するより良い方法は?
- 29. 私のフォームを整理するよりエレガントな方法はありますか?
- 30. リソースクラスをより効率的に整理する方法
いいえ、ご覧のとおり、RespondLoginMsgの代わりにRespondLogoutMsg ..... – Tattat
Aha。それを逃した、申し訳ありません。 – craigmc