java的设计模式---工厂模式

先上代码:

我以JDBC的连接为例子

接口:

import java.sql.Connection;
import java.sql.ResultSet;

public interface ConnectionDataBase {
	   /**
	    * 打开连接
	    * @return
	    */
       public Connection getConnection();
       /**
        * 关闭连接
        * @return
        */
       public boolean closeConection();
       /**
        * 
        * @param sql
        * @return
        */
       public ResultSet getResult(String sql);
       
}

实现接口的类:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class ConnectionMysql implements ConnectionDataBase {
	public static final String URL = "jdbc:mysql://192.168.2.103:3306/grainsituation";
    public static final String USER = "root";
    public static final String PASSWORD = "root";
    private Connection conn;
	@Override
	public Connection getConnection() {
		  //1.加载驱动程序
        try {
			Class.forName("com.mysql.jdbc.Driver");
			//2. 获得数据库连接
	        conn = DriverManager.getConnection(URL, USER, PASSWORD);
		} catch (ClassNotFoundException | SQLException e) {
			e.printStackTrace();
			return null;
		}
        System.out.println("连接MySQL成功");
        return conn;
	}
	@Override
	public boolean closeConection() {
		try {
		if(conn!=null){
		   conn.close();
		}
		} catch (SQLException e) {
			e.printStackTrace();
			return false;
		}
		return true;
	}
	@Override
	public ResultSet getResult(String sql) {
		ResultSet rs=null;
		try {
		if(!("".equals(sql))&& null!=sql){
			   Statement stmt = conn.createStatement();
				rs = stmt.executeQuery(sql);
		}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return rs;
	}

}

工厂:

/**
 * 连接工厂
 * @author hxl
 *
 */
public class ConnectionFatory {
       public ConnectionDataBase getConection(String conectionName){
    	   if(conectionName.equalsIgnoreCase("ConnectionMysql")){
    		   return new ConnectionMysql();
    	   }
    	   return null;
       }
}

通过工厂调用:

  ConnectionFatory testConnection=new ConnectionFatory();
  ConnectionDataBase dataBase=testConnection.getConection("ConnectionMysql");
通过这里我们可以知道当通过工厂模式调用的话只需要知道方法名  不必知道实现细节就可以调用  


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值