设计的思想:将多次用到的复杂初始化类(在一个比较大的项目里面,在进行数据库操作的时候,每次都得启动驱动,这样就使得资源的浪费,就可以使用单列模式,是每次用到的都是一个对象,以达到节约资源的效果),将这个 类的构造函数私有化,在建立一个返回此类对象的方法。
eg:比如数据库的操作
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 单例设计模式(在其它类使用此类对象时,都只能产生一个对象),在多次使用类中的某一元素时且这元素都得复杂的初始化,这样就最好使用单例模式
* 将类的构造方法封装成private,然后构建一个static方法,返回该类对象, 长远考虑将方法synchronized修饰,防止线程运用时建立多个对象。
*
* @author Qingjiaorousi
*
*/
public class SQLManager {
private Statement st;
private static SQLManager sql;
public Statement getSt() {
return st;
}
public void setSt(Statement st) {
this.st = st;
}
private SQLManager() {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/register";
String name = "root";
String passwd = "1234";
try {
Class.forName(driver);
Connection con = DriverManager.getConnection(url, name, passwd);
st = con.createStatement();
System.out.println("连接成功");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static synchronized SQLManager instance() {
if (sql == null) {
sql = new SQLManager();
return sql;
}
return sql;
}
}
在调用此类函数的时候只需要:SQLManager.instance().getSt();会用synchronized 修饰,因为在多线程里面还是会创造对象,所以synchronized修饰使得线程只创造一个对象。