单例模式:C++与JAVA

C++单例模式

单例模式:自始至终都只能有一个chenxuhu实例,不能再new出另一个实例,共用同一个实例。

  1. C++单例模式
#define _CRT_SECURE_NO_WARNINGS
#include<iostream>
using namespace std;

//创建个人类,比如我的名字,chenxuhu

class ChenXuHu
{
public:
	static ChenXuHu * getInstance()
	{
		return singleMan;
	}
private:
	static ChenXuHu * singleMan;
	ChenXuHu(){}
	//拷贝构造 私有化
	ChenXuHu(const ChenXuHu&cxh){}

};

//在类外面实现new
ChenXuHu * ChenXuHu::singleMan = new ChenXuHu;

void test()
{

	ChenXuHu *a = ChenXuHu::getInstance();
	ChenXuHu *b = ChenXuHu::getInstance();

	//ChenXuHu *c = new ChenXuHu;构造函数私有化,不可以再new
	if (a == b)
	{
		cout << "a 与 b相同" << endl;
	}
	else
	{
	    cout << " a与 b不相同" << endl;
	}
}

int main(){

	test();

	system("pause");
	return EXIT_SUCCESS;
}

在这里插入图片描述

2.JAVA单例模式,链接数据库

package com.wulian.utils;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JdbcUtil {

	static JdbcUtil ju = null;

	Connection connection;

	private JdbcUtil() {

		try {
			Class.forName("com.mysql.jdbc.Driver");
			String url = "jdbc:mysql://localhost:3306/javaweb?characterEncoding=utf8";
			String name = "root";
			String password = "123456";

			connection = DriverManager.getConnection(url, name, password);
		} catch (Exception e) {

			e.printStackTrace();
		}
	}

	public static JdbcUtil getInstace() {

		if (ju == null) {
			ju = new JdbcUtil();
		}

		return ju;
	}

	public Connection getConn() {

		return connection;
	}

	public void setCloseConn(Connection conn) {

		if (conn != null) {
			try {
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

	public void setClosePs(PreparedStatement ps) {

		if (ps != null) {

			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}

	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值