应用程序使用几种编码为对象的数据。这些对象需要持久化,并且存储后端可能会更改(文件系统,sqlite,nedb可能是选项)。
设计相关代码以最大限度地减少更改存储的麻烦的最佳方法是什么?我将传递对象的特定Store对象?我的对象是否继承了存储?我的对象应该“自存”吗?
有关信息,实际情况是使用node-webkit(javascript)的本地webapp,但答案可能不依赖于语言,只要它是面向对象的。
答案 0 :(得分:0)
每当您拥有可能发生变化的功能时,请通过引入接口来抽象它,并提供实现。在您的特定示例中,您可以定义一个接口IRepository
,它将具有用于操作对象的create / read / update / delete方法。然后,您可以提供适用于特定存储的实现。例如,在单元测试中,您可以使用基于内存的实现,该实现甚至不处理文件/数据库/等,但将数据保存在列表中。