2

写真を保存するインスタンスでリポジトリパターンを使用しようとしています。

私がしていることは、実際の写真をディスク上のディレクトリに保存することですが、写真に関するデータと、データベース内のどのオブジェクトにどの写真が関係するかを保存します。IStorePicRepoストレージに2つのインターフェースを使用する必要があるかどうか、IStorePicDataRepoまたは1つのインターフェースを使用して1つのクラスに実装する必要があるかどうか疑問に思っていました。2 つの異なるストレージ メカニズムを扱っているため、同じクラスで実装すべきではないように思えます。

何かご意見は?

4

2 に答える 2

2

ここに特効薬はありません。

しかし、私はおそらく次のデザインに行き着くでしょう:

IBinaryDataService: バイナリ形式でのデータの一般的な保存用。保存するオブジェクトには、それを OutputStream に書き込むためのメソッドが必要です。元のオブジェクトにもロードするための便利な方法があるはずです。

IDataIndexService: データ属性/タグのインデックス用で、検索にも役立ちます。あなたが説明したpicのデータに密接に対応しています。

IPicRepo: クライアントに公開される唯一のインターフェイス。クライアントはこれを使用する必要があり、上記の 2 つのサービスについては決して知りません。

FileSystemBinaryDataServiceImpl: 上記の IBinaryDataService の実装。

DbDataIndexServiceImpl: 上記の IDataIndexService の実装。

PicRepoImpl: 上記の IPicRepo の実装。Spring を使用して、FileSystemBinaryDataServiceImpl と DbDataIndexServiceImpl を依存関係として挿入します。

必要に応じて追加の拡張機能:

IPersistentModel: 永続化できるオブジェクトの表現。メソッド write(OutputStream)、read(inputStream)、および getAttributes():Map があります。

PicModel: 上記の IPersistentModel の実装。

PS。これは、一般的な高レベルの概要です。

于 2008-12-29T09:16:49.707 に答える
1

リポジトリ パターンについてはよくわかりませんが、ID 名でリポジトリを省略して Repo にするつもりはありません。略語。私を混乱させる。

于 2008-12-29T06:21:02.993 に答える