单例设计模式

本文介绍如何使用单例模式优化数据库操作,通过封装类的构造函数和提供静态方法来实现对象的唯一实例,从而节约资源并提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

设计的思想:将多次用到的复杂初始化类(在一个比较大的项目里面,在进行数据库操作的时候,每次都得启动驱动,这样就使得资源的浪费,就可以使用单列模式,是每次用到的都是一个对象,以达到节约资源的效果),将这个 类的构造函数私有化,在建立一个返回此类对象的方法。
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修饰使得线程只创造一个对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值