0

我正在编写一个 Web 服务,它有几个 API 可以从数据存储中获取数据。高级视图看起来像这样

     getBlahForDate()
         ---->             ----> 
Client           Service            Data store ( Stores Blah )
         <----             <----
        List<Blah>

在考虑如何在服务中设计代码时,我一直在选择正确的设计模式

我有以下几层

1. serviceLayer ( one class for each API, does validation on input )
2. daoLayer ( fetch data from dataStore )
3. modelLayer ( pojo defining domain objects like Blah )

服务完成的唯一“工作”是在发送响应之前验证输入并从数据存储读取并将域模型转换为传输模型。我可以让服务层直接使用 dao 并发送响应。但我想知道哪种设计模式适合用例。在我看来,这也像是一个贫血域,其中域对象只是一个没有业务逻辑的 pojo。但是除了验证来自商店的数据是否对模型中的字段有效之外,没有其他业务逻辑。感谢您能告诉我处理这种情况的公认/常用方法。

4

1 回答 1

0

我会做:

  • 您的 HTTP 服务层将执行以下操作:HTTP 正文、路由验证、在给定 URL 的情况下调用正确的 GenericManager ...

  • 一个 GenericManager 例如(使用 get、post、put、delete、list 方法)返回模型或模型列表。一个经理可以调用​​其他经理 开发人员将只定义想要的操作:获取或发布......甚至所有方法。我认为在这个级别处理业务规则验证是件好事。我认为业务规则验证应该是应用程序中的一个层。因为您可能希望共享业务规则验证。

  • 一个 AbstractDao 例如(使用 get、post、put、delete、list 方法)返回 Dao 模型或 Dao 模型列表。(模型道和模型呈现给客户端可以/可能不同)

于 2015-04-14T02:54:04.580 回答