适用于业务到持久层的设计模式

时间:2014-01-19 17:29:42

标签: mongodb design-patterns data-structures architecture

我正在使用存储简单产品集合的mongoDB。我从mongolab的API访问此数据库,因此无法直接访问实际的数据库。

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

我的问题是:为了将我的业务层连接到持久层,哪些设计模式是合适的。

到目前为止,我看到了以下步骤:

产品创作:

  1. 创建并填充产品型号
  2. 构建API的端点URL
  3. 发送请求
  4. 产品检索:

    1. 调用getProductByName()getProductByCode()
    2. 等方法
    3. 构建API的端点URL
    4. 发送请求
    5. 根据回复创建并填充产品型号。
    6. 我想让持久层尽可能抽象,因为将来我可能会改变存储和检索数据的方式。此外,这将是一个简单的应用程序,因此不需要使用复杂的逻辑或完整的ORM。

1 个答案:

答案 0 :(得分:0)

我不是Android开发人员,但我认为我的回答可能会有所帮助。如果您的持久层非常简单,并且您将在那里使用多种方法,那么没有理由将其与过度设计复杂化。如果我是你,我会怎么做:

  1. 将新项目添加到DAL层的解决方案中。
  2. 使用您需要的所有方法创建合约/界面。
  3. 添加您可能需要作为方法的输入或输出参数的所有DTO。
  4. 创建实现接口的存储库类。确保它处理所有API内容(构建端点等)
  5. 在您的业务层中引用新创建的库。确保使用IoC来实例化它。重要的是你总是引用界面而不是类本身。
  6. 在业务层事物和持久层DTO的
  7. 之间添加一些映射逻辑

    现在,如果您想直接将数据存储在数据库中或其他任何内容,则需要再创建一个实现接口并替换旧接口的类。其余代码将保持不变。顺便说一句,那么很容易模拟单元测试的持久层。

    希望它有所帮助。