菜鸟教程 传送门
单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。
这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。
注意:
1、单例类只能有一个实例。
2、单例类必须自己创建自己的唯一实例。
3、单例类必须给所有其他对象提供这一实例。
实例:
用到两个类JDBCUtil.java(单例类)和JDBCUtil_use.java
无需在JDBCUtil_use.java中实例出JDBCUtil对象
JDBCUtil_use.java通过JDBCUtil.instance去使用单例类中公有方法
packageGary03;public classJDBCUtil {//设置成单例模式 只在JDBCUtil中new一次 在其他地方不需要再动态申请
public static JDBCUtil instance = newJDBCUtil();//构造方法私有化,
privateJDBCUtil() {
}public voidGetConnection() {
System.out.println("GetConnection()");
}//public static void main(String[] args) {//JDBCUtil.instance.GetConnection();//
// //JDBCUtil util= new JDBCUtil();// //util.GetConnection();//
//}
}
JDBCUtil.java
packageGary03;importGary03.JDBCUtil;public classJDBCUtil_use {public static voidmain(String[] args) {//JDBCUtil jdbc = new JDBCUtil();//直接通过JDBCUtil.instance去访问GetConnection()方法
JDBCUtil.instance.GetConnection();
}
}
JDBCUtil_user.java
程序结构
设置成单例模式后为节约性能只在JDBCUtil中new一次 在其他地方不需要再动态申请
为防止在其他地方类似如下通过new实例化
JDBCUtil jdbc = new JDBCUtil();
可将JDBCUtil.java中将构造方法私有化,外部将无法new JDBCUtil()
privateJDBCUtil() {
}
单例模式要设置成static静态,JDBCUtil_use.java外部访问JDBCUtil.java中的GetConnection方法可通过instance来访问
public classJDBCUtil {//设置成单例模式 只在JDBCUtil中new一次 在其他地方不需要再动态申请
public static JDBCUtil instance = newJDBCUtil();//构造方法私有化,
privateJDBCUtil() {
}public voidGetConnection() {
System.out.println("GetConnection()");
}
}
public classJDBCUtil_use {public static voidmain(String[] args) {//JDBCUtil jdbc = new JDBCUtil();//直接通过JDBCUtil.instance去访问GetConnection()方法
JDBCUtil.instance.GetConnection();
}
}