2014-01-19 36 views
0

我正在使用存储简单产品集合的mongoDB。我从mongolab的API访问这个数据库,所以没有直接访问实际的数据库。适用于业务持久层的设计模式

另一方面,我有一个产品模型,它与数据库中的产品文档具有相同的属性。

我的问题是:什么样的设计模式适合将我的业务层连接到持久层。

到目前为止,我看到这些步骤:

产品创新:

  1. 创建和填充产品型号
  2. 构建端点URL的API
  3. 发送请求

产品检索:

  1. getProductByName()getProductByCode()
  2. 调用方法构建端点URL的API
  3. 发送请求
  4. 创建并填充基于响应的产品型号。

我想使持久层尽可能抽象,因为将来我可能会改变我存储和检索数据的方式。此外,这将是一个简单的应用程序,所以不需要使用复杂的逻辑或完整的ORM。

+0

我忘记提及的一件重要事情是,上述过程作为异步过程发生在Android应用程序内部,所以在某一点上,还应该有另一个层需要创建和管理不同的后台进程。 – Zorrocaesar

回答

0

嗯,我不是Android开发者,但我想我的回答可能会有所帮助。如果你的持久层非常简单,并且你只需要有几种方法,那么没有理由通过过度设计来使它复杂化。如果我是你,我会这样做:

  1. 向解决方案的DAL层添加一个新项目。
  2. 使用您需要的所有方法创建合同/界面。
  3. 添加您可能需要用作方法的输入或输出参数的所有DTO。
  4. 创建一个实现接口的存储库类。确保它处理所有API(构建端点等)
  5. 引用业务层中新创建的库。确保使用IoC来实例化它。重要的是你总是引用界面而不是类本身。
  6. 添加您的业务层的东西和持久层的DTO的

现在,如果你想直接存储在数据库中的数据或什么的,你需要创建一个更加它实现了接口类之间有一些映射逻辑替换旧的。其余的代码将保持不变。顺便说一下,它将很容易地模拟单元测试的持久层。

希望它有帮助。