0

C++コンソールユーティリティを持っている。内部のコードはコマンドライン入力を解析し、入力に応じて特定の関数を呼び出します。

グローバル関数を呼び出す大きな醜い解析ルーチンがあります。

このコードが嫌いで、デザインパターンアプリケーションごとにこのコードを整理したいと思います。

フローは次のとおりです。

  • コマンドライン引数を処理します。
  • エラーが発生した場合は、それについて報告して終了します。それ以外の場合は続行します。
  • 指定されたパラメーターに応じて、特定のルーチンを呼び出します。

この場合、どのようなパターンをアドバイスしますか?

ありがとうございました。

4

2 に答える 2

1

このようなものに使用される一般的なデザインパターンは、コマンドパターンです。

于 2012-05-29T13:39:35.973 に答える
1

パターンではありませんが、それでもBoost.Program_optionsを確認することをお勧めします。

http://www.boost.org/doc/libs/1_49_0/doc/html/program_options.html

面倒な解析をすべて行うため、アプリケーションにコマンドライン引数のサポートを簡単に追加できます。特定の関数を実際に実行するために、(@ Bradyによって提案されたように)コマンドパターンのようなパターンを見ることができます。

ただし、program_optionsは、ヘッダーだけでなくコンパイルが必要なBoostライブラリの1つであることに注意してください。

于 2012-05-29T13:58:42.130 に答える