2

Document-Based Applications Guideによると、DocumentController、Document、および WindowController が必要です。私が苦労しているのは、与えられた責任がどこにあるべきかを判断することを学ぶことです.

My Document は todo リストを表します。特定の todo リストがドキュメントによってメモリに読み込まれ、WindowController によって表示されます。いつでもウィンドウに収まる todo の数は、ウィンドウのサイズによって決まるため、todo を表示する必要がある場合、WindowController は Document に、表示されているリストを満たすのに十分な数の todo を要求します。

必要に応じて、正規表現を使用して ToDo を検索できます (私は知っていますが、その通りです)。一致したものが上位の結果として返されます。この場合、責任の所在がはっきりしません。Document は todo リストの保存と読み込みを処理しますが、上記では、リストの小さな部分を WindowController に返すことも処理するように要求しました。その場合、一致するロジックをドキュメントに入れる必要がありますか? それとも、データの保存と読み込みとは関係がないため、これは WindowController にとどめるべきですか (検索後の todo の順序はディスクに保存されません)。これらは、私が自問自答している種類の質問です (私自身)。このようなプロジェクトを振り返ると、自分の判断が互いに矛盾しているように見える場所に気づきます。2 つの間で 1 ビットのロジックを移動するだけで 1 時間かかることもあります...

明らかに助けが必要です。

私の例は非常に特殊な状況のものですが、特定の解決策には興味がありません。私は、これら 3 つのクラスの責任がどうあるべきかを、より一般的な用語で知りたいと思っています。ガイドを読み、少しグーグルで調べましたが、まだそれを理解できないようです.

この質問は役に立ちましたが、まだ混乱しています。

ありがとう!

4

1 に答える 1

3

この場合の私の本能は、ウィンドウ コントローラーにロジックを配置することです。検索機能は実際のモデルには影響しません。私はNSDocument「モデル コントローラー」のようなものだと考えています。

NSWindowControllerUI(「UIコントローラー」)の詳細を管理するのにより適しています。基本的には、検索バーでモデルのビューを制御するだけです.

はい、私たちもNSViewController同様であることは知っていますが、それは単に複雑さを増すだけの場合もあります。ほとんどの場合、NSWindowController問題ありません。

于 2011-08-24T01:38:38.480 に答える