コマンドを文字列として取得するプログラムがあります。文字列の各文字はコマンドを表します。コマンドの例は文字列入力からコマンドを取得する
OBIPC
Oの下に与えられている - ファイル
B開く - 大胆
内のテキストを作成しますが、私は - テキストを印刷する - イタリック体のテキスト
Pを作ります
C -
私のプログラムはトンを解析しているファイルを閉じます彼の文字列とそれぞれの仕事を行う。各コマンドは順次実行されます。私はこれを行うために次のアイデアを思いついた。
- 各コマンドにアクションクラスを作成します。それぞれはExecute()メソッドを持ち、インターフェイスを実行します。実行可能コードです。したがって、5つのコマンドがある場合は、各コマンドを処理するためにそれぞれ5つのクラスがあります。
- コマンドと連想コンテナ(のstd :: C++における地図と.NETで辞書)でアクションを実行することができる関連したオブジェクトを保持。
- 入力文字列の各文字をループします。各キャラクターに関連するアクションを確認してください。はいの場合は、アクションオブジェクトを取得し、Execute()と呼び出します。ある種のコマンド設計パターン。 charctersにアクションが関連付けられていない場合は、エラーをスローするかスキップします。
私の問題ではこの方法が最善であるか、これを簡単に効率的に行う方法がありますか?これはプログラミング言語に固有のものではなく、プログラミング言語であればOKです。私が探しているのはこれを行うためのアイデアだけです。
どのような考えですか?