0

テキスト ドキュメントを読み取り、統計をテキスト ファイルに書き込む小さなプログラムを設計するのに苦労しています。まだ学習していないモデル ビュー コントローラー形式を使用する必要があります。

基本的に、モデル クラスはテキスト ファイルのテキストを表し、それを String または String 配列に格納する必要があります。また、単語数などを報告するメソッドも必要です。ビュー クラスには、バッファリングされたリーダーとライターが必要です。コントロール クラスはオブジェクトを作成し、printResults() メソッドを呼び出します。

そこで、次のようなコントロール クラスから始めました。

Model model = new Model();
View view = new View( model );

view.writeFile();

これは間違っていると感じています。モデル クラスでテキスト ドキュメントを表現し、それを View クラスに送信して読み取り、ビュー クラスでモデル クラスからメソッドを呼び出して統計を書き込むにはどうすればよいですか? より良いアプローチがありますか、それともここで欠けているものがありますか?

4

2 に答える 2

0

あなたのモデルは完全に理にかなっています。Viewクラスを使用してデータをモデルに出し入れしていますが、これは妥当なことだと思います。通常、ビューはそれよりも視覚的です。ビューは、テキストファイルを表示するためのウィンドウになると思います。たぶん、これは、ユーザーが開くファイルと保存するファイルを選択できるようにするGUIの一部である可能性があります。

コントローラは、多くの場合、プログラムがユーザー入力に応答する場所です。ただし、このプロジェクトのUIを作成する必要がない場合は、「ビュー」と「コントローラー」の解釈は適切に聞こえます。このプログラムが、たとえばSwingで作成されている場合でも、コントローラーは説明したとおりに動作します。ただし、ユーザーが[保存]ボタンまたは[ファイルを開く]ボタンをクリックすると、これらの処理が実行されます。

初めての場合は、Model-View-Controllerデザインパターンについて読んでおく必要があります。たとえば、MVCに関するOracleのtechnetworkの記事を参照してください。

于 2012-09-13T17:00:12.240 に答える
0
   How do I make my view and model classes aware of each other
 without having to declare a view object in the model class and
 a model object in the view class?

-これはコントローラーの仕事です。通常、「セッター」と「ゲッター」を使用して、コントローラー クラスにモデルおよびビュー フィールドを作成します。次に、メイン プログラム クラスで View オブジェクトと Model オブジェクトを作成し、それらを Controller クラスのフィールドに設定します。このように、ビューとモデルの間でデータを中継するたびに、コントローラーの対応するフィールドを使用してそれぞれのメソッドを呼び出すだけです。

たとえば、ユーザーが入力した数値を 2 倍にして表示したいとします。Controller オブジェクトの実装では、ビューのメソッドを呼び出してユーザー入力を取得し、それを引数としてモデルのメソッドに渡します。次に、返された値をモデルのメソッドに割り当てるか、数値を 2 倍にして、それをビュー、または任意の方法で結果を表示するメソッドに渡します。

于 2014-04-21T15:12:18.153 に答える