DAO更加精细,并且处理一个特定的实体。服务提供宏级别的功能,并且最终可能会使用多个DAO。通常,服务用于定义事务边界以获取原子性。换句话说,如果最终使用多个DAO更新多个表,则在服务时定义事务边界将有助于提交或回滚对数据库所做的所有更改。
在您的设计中,由于您主要是对各种实体进行CRUD,因此服务似乎并没有增加太多价值。但是,请将基于Web的前端视为更新数据的一种方法。服务的使用将使您日后向第三方集成商等其他形式的客户端公开与Web服务相同的功能。
因此,总而言之,您的设计似乎与常规做法保持一致。如果您认为可以基于某个通用主题将多个服务组合为一个服务,从而可以减少代码开销,那么应该继续进行。归根结底,最终目标是创建可维护的代码,当有人需要时,不必害怕更改。



