2011-08-17 12 views
13

私はコマンドラインプロジェクトでMVCを取得しようとしています。今のようMVC in command line java

(当然なしMVC、)私が持っている:

  • MainClass(明らかに偽の名前)、メニューを数回使用してフレットをそれがメインで使用されるシステムオブジェクト
  • メニュー(作成されますオプション)
  • システムを提供するように、それがファイルまたはキーボード入力を使用して作成、属性としてモデルを有し、それはvalueAと値bを使用して、選択された簡単な操作.calculate(valueA、値b)を実行するモデルからのデータを使用しモデルの属性の土地からのメニュー
  • モデルd)は私が持っているデータのコンテナです。

誰かが私のクラスのための適切な構造を提案してくださいことはできますか?

どうもありがとう、 ルーク

+0

どういう意味ですか?どのようなMVCクラスライブラリですか?どんな種類のUIですか? – bmargulies

+0

パターンビューModelViewController –

+0

@ルーク、それはデザインパターンか、既存のライブラリのニックネームです。後者の場合は、どのライブラリですか?前者の場合、あなたの質問は無意味です。私は最初のタイマー午前以来 –

答えて

14

それはかなり興味深いものだと私は、この質問への否定的な反応によって、本当に驚いています。ほとんどの人は、MVCはWeb環境内でしか意味がないと仮定しているため、MVCはCLIプログラムにも完全に適用できるので、これが期待されます。それはちょうど異なるビューメディアを提示します。実際、コントローラとモデルの部分を変更することなく、CLI、GUI、またはWebビューのいずれかをプラグインできる優れたMVC設計と考えています。

MVCによれば、アプリケーションが提供されると、アプリケーションの実際の内部ロジックから、ビュー部分(アプリケーションのプレゼンテーション、ユーザーが見て対話する内容)を可能な限り抽象化します。これを行う方法は、ビューとそれに存在するコントロールをバックエンドのロジックに「接着」するコントローラを作成することです。簡単に言えば、コントローラはユーザー入力をメソッド呼び出しに変換し、戻り値をユーザーにとって有用なものに変換し直します。パターンのモデル部分は幾分議論されている。表示するためにビューに送信されるオブジェクトグラフの別々の部分は、 "モデル"です。その他には、バックエンドに住んで全体のステートフルオブジェクトグラフが「モデル」であり、コントローラはビ​​ューには、選び出す検査し、モデルの特定の部分を変更してみましょう見ているガラスのようなものを形成することを維持します。問題は実際には、常に前後に流れる多くのモデルや、ユーザーが理解できる方法で公開する必要がある1つの大きなモデルがあるかどうかです。またはアプリのいずれかのタイプ - - CLIでMVCに到達するために

は明らかビュー/プレゼンテーションとして定義されていたコードの一部を持っています。その中にビジネスロジックに似ているものは決してありません。あなたのコントローラーは、ユーザー入力にどのように反応するかを知っていて、表示のために物事を返すことができるオブジェクトでなければなりません。モデルは、基本的に、ユーザーが気にかけている実際のデータや「もの」です。そのモデルを表示しているビューや、コントローラを制御しているコントローラのことを気にする必要はありません。

関連する問題