假设我有一个 JDBC Connection 对象的 ListArray (connectionsArray)。但是,假设我需要为 ListArray 中的每个连接分配一个用户名。为此,我创建了一种包装对象,该对象在名为 UserConnection 的新对象中包含 Connection 对象和 String 对象。然后,我使用 UserConnection 对象而不是 Connection 对象填充connectionsArray。我的问题是 - 这里遵守了哪种类型的 OO 原则以及(如果适用)使用了哪种类型的设计模式?对我来说,这听起来有点像适配器模式,但我没有实现接口(interface),这似乎是适配器模式定义的一部分。
这是 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;
}
}
最佳答案
这确实是实际的适配器模式,适配器是 JDBC Connection 对象,适配器是 UserConnection
。适配器模式不讨论 Java 意义上的接口(interface)。这个想法是让客户端能够无缝地使用 JDBC Connection 对象和 UserConnection
。
您实际上已经使用了对象适配器模式,其中 UserConnection
组成 DBC 连接。还有另一种“类适配器模式”的情况,您可以扩展 JDBC Connection 对象,即 UserConnection
继承 JDBC Connection。
关于java - 该代码示例如何用 OO/设计模式术语定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20970332/