java - 如何在 Java 中设计和接口(interface)(OOP 类型),以便我可以使用直接数据库访问或使用 Web 服务?

标签 java oop data-binding interface

目前我必须查询我不拥有的具有网络服务的数据库,所以他们提供的就是我得到的。由于这是在内部(某种程度上),我将来可能能够直接访问,以便我可以在查询中获得更好的数据。

我不想一遍又一遍地写所有内容。如果我在 Java 中这样做,我会编写一个接口(interface)(编程类型,想想实现接口(interface),OOP)吗?我该怎么做?或者我只是编写一个全新的类并“将其插入”。

这只是一个常规的客户端/服务器架构。 http请求,服务器调用servlet或jsp,返回数据。

我不确定我的想法是否是正确的设计。

最佳答案

听起来您确实应该在此处使用具有不同实现的接口(interface)。像这样的东西:

public interface DataAccess {
    Data getData();
}

然后您可以针对此 API 进行编码,并根据需要插入/注入(inject)不同的实现。所以你可以这样:

public class DirectDataAccess implements DataAccess {
    public Data getData() {
        //use JDBC, ORM, or similar
    }
}

或者这个:

public class WebServiceDataAccess implements DataAccess {
    public Data getData() {
        //call web service
    }
}

但只要您的客户端代码仅引用 DataAccess 接口(interface),那么您就已成功将客户端与服务解耦。

关于java - 如何在 Java 中设计和接口(interface)(OOP 类型),以便我可以使用直接数据库访问或使用 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18106392/

相关文章:

java - 调用任何 AccountManager getAccounts 都会使我的应用程序停止

php - 如何只扩展一个父级?

java - 我可以使用超过 32 GB 的堆和压缩 oops

wpf - 当不是数据上下文时绑定(bind)到窗口 View 模型属性

java - ArrayList 的 HashMap 导致 nullpointerException

java - 带有对象的通用请求接收 double 值而不是整数值

java - 当同一个单例类打包在两个war文件中时,可能没有实例?

.net - 域对象扩展数据传输对象

c# - TwoWay 绑定(bind)一个实现 INotifyPropertyChanged 的​​类,没有任何反应

c# - 应用程序启动时出现 ValidationError XamlParseException