设计具有解耦存储的持久对象

时间:2016-08-06 12:19:21

标签: oop object design-patterns

应用程序使用几种编码为对象的数据。这些对象需要持久化,并且存储后端可能会更改(文件系统,sqlite,nedb可能是选项)。

设计相关代码以最大限度地减少更改存储的麻烦的最佳方法是什么?我将传递对象的特定Store对象?我的对象是否继承了存储?我的对象应该“自存”吗?

有关信息,实际情况是使用node-webkit(javascript)的本地webapp,但答案可能不依赖于语言,只要它是面向对象的。

1 个答案:

答案 0 :(得分:0)

每当您拥有可能发生变化的功能时,请通过引入接口来抽象它,并提供实现。在您的特定示例中,您可以定义一个接口IRepository,它将具有用于操作对象的create / read / update / delete方法。然后,您可以提供适用于特定存储的实现。例如,在单元测试中,您可以使用基于内存的实现,该实现甚至不处理文件/数据库/等,但将数据保存在列表中。