適切にデザインコードエディタの応用
-
22-09-2019 - |
質問
私自身の個人的なプロジェクトは基本的にコード編集者。想像の標準ファイルメニューとのメニュー項目を新規開、保存、保存してすべて保存してあります。
私はこだわった適切な設計です。現在、私は:
- 文書クラスを代表する文書-コードの編集制御、それぞれのタブをタブバーにさまざまな機能を持など、キャプション、ファイル名IsModified。
- る文書クラスを開きます。を含む方法など、Open(FileName),...
問題はいるクラス/メニューコマンドが担当する事ができます。
例えば、ファイル->新しいメニューコマンドの簡易呼びます。新しいことになるのです。
そのためのファイル->オープンリサーチ?ます。Openメソッドのパファイル名としてのパラメータとします。る前に本メソッドを呼び出すことが必要でにファイル選択ダイアログで、ユーザーを選択ファイルと各ファイルの呼びます。Open(FileName).場所は中心に位置するこの支援コードは、メニューコマンド書き換えます。オープンであるのですか?
と同じに保存します。を担当する。で文書クラスを利用します。編集者。SaveToFile(FileName)以上を保存方法をドキュメントクラス?どこかの中にいる場合、ユーザーしたい保存ドキュメントからの...
私は滞っております。そのアイデア?
編集:のプログラミング言語ではご利用いただけます:standardとexpress。
解決
IMHO、あなたのドキュメントクラスにあまりにも多くの責任を追加しています。ドキュメントクラスの唯一の責任は、いくつかの関連する機能を持つドキュメントのコレクションを維持するべきである(例えば、同じ文書の複数のインスタンスを処理し、チェックすべての文書は、子供を数える閉じている場合など。)
文書を開く、あるいは新しいドキュメントを作成するには、(例えば、あなたはフォーマットを選ぶために何を持っている場合)、最終的には[ドキュメントクラスに追加された新しい文書になり、別の操作です。私の意見では、あなたも、あなたはDocumentオブジェクトの上に手に準備が整うまで、ドキュメントクラスと対話すべきではありません。
私はあなたのUIを表現するため、ファイルを作成または開くために必要なすべての情報を取得するには、ユーザと対話するためのいくつかのクラスを持っていることを願っています。あなたはそこからすべてを処理する必要があります。そうでなければ、あなたはUI関連のものを使用してモデルを汚すしています。
他のヒント
必要なシングルトンオブジェクト(DocumentManager)を管理するすべての文書。このような機能:
- Get(idList)
- GetNew
- 保存(docList)
- リフレッシュ
- など---。