1

だから私は Java で単純な IRC クライアントをコーディングしています。今のところ、ユーザーが入力しているコマンドを特定しようとしています。多数の if-else ステートメントを使用できることはわかっていますが、それはあまり良い方法ではありません。スイッチの使用を考えましたが、それに代わるものを見つけようとしています。

例: 私はいくつかのコマンド、PASS、NICK、USER、JOIN、PART、MODE を持っています。

ユーザーからの入力例: NICK John

入力を取得することはできますが、プログラムに method_nick(John) を呼び出すように指示できるクリーンで効率的な方法が必要です。これにより、それがサーバーに送信されます。

正しい方向へのポイントだけをいただければ幸いです。スイッチ/if-elsesなしでこれを処理する方法について、私は途方に暮れています。

4

1 に答える 1

2

if-else を省略する良い方法は、switch-case を使用することです ;)

コマンド文字列をキーとして使用し、アクションのコマンド オブジェクトとして map を使用できます。これはコマンド パターンと呼ばれます。

Map<String,Action> m=new Map<String,Action>();
m.put("NICK", new Action() { public void execute() {... } });
m.put("PASS", new Action() { public void execute() {... } });

その後:

 m.get(command_from_irc).execute();

別のアプローチは、リフレクションを使用することです。

于 2011-02-02T05:52:17.687 に答える