2016-08-06 15 views
0

アプリケーションはオブジェクトとしてコード化されたいくつかのタイプのデータを使用します。これらのオブジェクトは永続的である必要があり、ストレージのバックエンドが変更される可能性があります(ファイルシステム、sqlite、nedbはおそらくオプションです)。デカップリングされた記憶域を持つ永続オブジェクトの設計

ストレージを変更する手間を最小限に抑えるために関連するコードを設計する最善の方法は何ですか?オブジェクトを渡す特定のStoreオブジェクト私のオブジェクトはストレージを継承していますか?私のオブジェクトは "セルフストア"かどうか?

実際のケースでは、node-webkit(javascript)を使用したローカルWebアプリケーションですが、オブジェクト指向であれば、言語に依存しないようにする必要があります。

+1

imo、オブジェクトは、すべてのオブジェクトが必要とする結合の余分な層であり、一時的なものであっても「自己保存」しないでください。 imo、リポジトリパターンはこのために便利です。オブジェクトを実際の店舗から切り離します。インターフェイスを使用して定義されている場合は、特にテストなどのときに非常に柔軟性があります。 –

+0

look @ data mappers – jeremy

答えて

0

変更可能な機能を持っている場合は、インターフェイスを導入して機能を抽象化し、実装を提供してください。具体的な例では、オブジェクトを操作するための作成/読み取り/更新/削除メソッドを持つインターフェイスIRepositoryを定義することができます。次に、特定のストレージで動作する実装を提供することができます。たとえば、単体テストでは、ファイル/ DB/etcを扱わずにデータをリストに保持するメモリベースの実装を使用することができます。

関連する問題