我们有一个在控制器/服务/DAO 架构上用 Java 开发的经典订单管理应用程序。数据对象是表示数据库中数据的 POJO。基本上我们有 1 个类映射数据库中的 1 个表,但我们不使用任何 ORM 或实体机制这些数据对象在所有层之间传递,以通过 Web GUI 创建/修改/获取订单。该应用程序还有一个 WebService 层,允许外部系统通过 SOAP 管理这些订单。WebService 层依赖于 Service 层来确保 WebService 和 GUI 之间使用相同的逻辑。
我们尝试使 WebServices API 尽可能稳定,但是由于我们目前使用数据对象作为 WebService 方法的参数,因此该 API 可能会经常更改(至少每次我们拥有或修改数据库中的任何字段时) . 此外,我们希望向 WebService 客户端隐藏一些复杂的数据库结构。例如,数据库包含多个我们希望对客户隐藏的字段。
具体问题:
通过客户端 API 隐藏数据库结构和字段常用什么样的设计模式?
是否有任何好的做法来处理公共方法参数和内部数据对象之间的“映射”?
数据传输对象是我问题的答案吗?