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