如何在OO /设计模式术语中定义此代码示例?

时间:2014-01-07 11:22:40

标签: java oop design-patterns

假设我有一个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;
    }
}

1 个答案:

答案 0 :(得分:1)

这确实是适配器模式的实际应用,适配器是JDBC连接对象,适配器是UserConnection。适配器模式不涉及Java意义上的接口。我们的想法是使客户端能够无缝地使用JDBC Connection对象和UserConnection

您实际上已经使用了对象适配器模式,其中UserConnection 组成 DBC连接。还有另一种“类适配器模式”的情况,您可以扩展JDBC连接对象,即UserConnection 继承 JDBC连接。