假设我有一个JDBC连接对象的ListArray(connectionsArray)。但是,我们假设我需要在ListArray中为每个Connection分配一个用户名。为此,我创建了一种包装器对象,该对象在名为UserConnection的新对象中包含Connection对象和String对象。然后我用connectionConnection对象而不是Connection对象填充connectionsArray。我的问题是 - 在这里观察到了什么类型的OO原则以及(如果适用)使用了哪种类型的设计模式?对我来说,它听起来有点像适配器模式,但我没有实现一个接口,这似乎是适配器模式定义的一部分。
以下是UserConnection的代码:
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.DriverManager;
public class UserConnection
{
private Connection con;
private String user;
private static final String dbUser = "abc";
private static final String db = "database1";
private static final String password = "xxx";
private static final String url = "jdbc:mysql://xxx.xxx.xxx.example.com/" + db;
public UserConnection()
{
try
{
Class.forName("com.mysql.jdbc.Driver").newInstance();
}
catch(Exception e)
{
System.err.println(e);
}
try
{
con = DriverManager.getConnection(url, dbUser, password);
}
catch(SQLException se)
{
System.err.println(se);
}
}
public Connection getUserConnection()
{
return con;
}
public String getUser()
{
return user;
}
public void setUser(String user)
{
this.user = user;
}
}
答案 0 :(得分:1)
这确实是适配器模式的实际应用,适配器是JDBC连接对象,适配器是UserConnection
。适配器模式不涉及Java意义上的接口。我们的想法是使客户端能够无缝地使用JDBC Connection对象和UserConnection
。
您实际上已经使用了对象适配器模式,其中UserConnection
组成 DBC连接。还有另一种“类适配器模式”的情况,您可以扩展JDBC连接对象,即UserConnection
继承 JDBC连接。