1

ユーザーがいくつかのGUI処理クラスでファイルパスを選択するとします。したがって、ファイルパスを含む文字列を受け取ります。

さて、ファイルを開く/閉じるコードを配置するためのベストプラクティスは何ですか?パスをGUIクラスのInputStreamオブジェクトに変換してから、このオブジェクトをパーサークラスに渡す必要がありますか、それともStringオブジェクトを渡して、パーサークラスにファイルの開閉操作を処理させる方がよいでしょうか。

同じクラスでファイル処理とエラー処理を行うと便利なように思われるため、2番目のオプションを選択しました。次に、nullを渡すか、何らかの障害が発生した場合に例外をスローします。GUI処理コードはそのまま冗長であり、GUIとユーザーアクションコードをコアロジックから分離したいと思います。

ただし、最初のオプションは、ファイル読み取りの例外を早期にキャッチできるため、優れています。したがって、クラスを「ジャンプダウン」する必要がなくなり、そこで例外をスローするだけです。

これに関する良い習慣は何ですか?このように、オブジェクトが処理される前に少し渡される状況はもっとあると思います。エラー処理は、「高レベル」クラスまたは「低レベル」コアクラスで行う必要がありますか?

基本的に、StringからInputStreamにすぐに変換する必要がありますか、それとも遅くする必要がありますか?

4

2 に答える 2

2

そもそも、イベントディスパッチスレッドでファイル処理を行うべきではありません。このスレッドは、イベントの受信、GUIの駆動、およびその他の懸念事項を別のスレッドにディスパッチするために必要な最小限のコードのみを実行する必要があります。そうしないと、 GUIの動作が遅いというコーナーに自分自身を塗りつぶしてしまい、アプリケーションのユーザーエクスペリエンスが低下します。

パーサーとファイル処理コードの間の関心の分離に関しては、最も一般的には、APIがコアビジネスに固執する場合、APIの価値が高くなります。つまり、APIに関係のない関心の変化に直面しても、APIを再利用できます。

于 2013-02-10T13:30:37.377 に答える
0

コマンドでこれを解決してみることができます。

コマンドパターン

基本的に、あなたが説明するのは「ファイルを開く」コマンドです。

于 2013-02-10T13:33:34.180 に答える