从第三方Web服务和应用程序的专用数据库中检索“客户”字段时的“ CustomerDAO”替代方案

问题描述

我有一个Customer班。它的专用字段是CustomerDAO接口,例如myCustomer.getAge()调用数据库访问方法。 CustomerDAO从应用程序的专用数据库中检索数据。

问题在于,Customer的某些字段现在必须从第三方Web服务中检索。逻辑上调用某些Web服务不属于CustomerDAO(它是用于与单个数据库通信的,对吗?)。

在这种情况下,行业推荐的方法是什么?

我是否要向CustomerWebServiceDAO添加另一个字段Customer(作为接口)?我的Customer将在内部使用两个不同的实例(CustomerDAOCustomerWebServiceDAO)。因此DAO分为2个单独的类... 如果接下来我需要访问另一个Web服务和一个附加的数据库怎么办?可以使用哪种更好的解决方案/模式?

在最初的CustomerDAO界面中添加Web服务方法会将数据库访问与Web服务访问混合在一起,我认为这不好。

解决方法

如果我理解您的问题是对的 您需要拥有一个数据库服务,该服务具有所有 Customer 的GRUD操作,并假定它将被称为 CustomerDBDao ,而另一项服务名为 CustomerAPIDao Web服务操作和所有服务中的所有操作都在称为 CustomerDAO 的常规服务中调用 从这两个服务填充数据并生成一个Unified POJO的概念称为适配器设计模式

https://www.tutorialspoint.com/design_pattern/adapter_pattern.htm

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...