【发布时间】:2014-06-10 02:03:11
【问题描述】:
我们有一个由几个应用程序组成的平台。
我们必须开发一个 API,它必须分解与数据库的所有交互。 在这个 API 中,我们也将拥有一个 XML 格式的数据库版本。 XML 格式仅供一个应用程序使用。
我们的应用程序是在经典架构中开发的:dao - 服务层 - 表示层。
DAO 层将移至 API。在这一点上没有问题。 在很多应用中,服务层只是表示层和dao层之间的一个网关,没有具体的业务代码。
所以我的问题是:
- 我们应该为每个 dao 创建一个带有服务层的 API 吗?
- 如果是,那么在应用程序中保留一个从 API 调用服务层的服务层?
- 我们是否应该在 API 中创建一个服务层来管理工厂(数据库/XML),但这意味着每个应用程序都必须提供信息来选择要选择的 dao(当只有一个应用程序有此需求时)?
- 或者只是在API中为数据库和xml创建不同包中的所有dao,将工厂保留在有需要的应用程序中,并在所有其他应用程序中调用dao(数据库)?
需要帮助! :p 我迷路了……
仅供参考,我们使用的是 Java 1.6 和 Spring 3.1.1。暂时在 DAO 中使用 JDBC 模板。 我们正在寻找有关 spring data jdbc 以替换 JDBC 模板的信息。 对此有任何建议可以不胜感激^^ [无休眠-JPA解决方案]
谢谢。
[编辑 1]
换句话说,在应用程序和 API 中保留服务层是我拥有抽象层的一种方式。如果我们必须修改数据库结构,如果我们也可以直接在API的服务层进行一些更改,那么我们可能不需要编辑所有应用程序。
想象 3 种可能性:
- API 中的服务层与工厂选择使用哪个 dao(xml/数据库)
- API 中的 dao
- 数据库 API 中的服务层和 XML API 中的特定层
你选择什么解决方案?
[编辑 2]
创建一个独特的类来调用 API 是否有趣?就像在外观设计模式中一样。
【问题讨论】: