单例模式

单例模式分为两种:饿汉模式和懒汉模式
/**
* 设计模式:前人总结出来的经验,被后人直接拿来使用。在设计过程中产生的总结经验
* 单例设计模式:一个类只允许有一个对象。将这个对象作为一个全局的访问点,提供出去供大家使用
* 分析:
* 1.只能有一个对象—用户只能有一个对象
* 2.全局的访问点:得到的对象就是全局的访问点,如何做到全局(对整个工程可见)?让static去修饰
* 3.如何提供出去?
* 4.如何供大家使用?—单例的功能
*/

//饿汉式–在定义变量的 时候初始化
class SingleInstance{
//在类的内部创建一个当前类型的属性并赋值–在类的内部得到了当前类的额一个对象
//将变量私有化,让外界无法直接访问,给变量用static修饰让他称为全局的访问点
private static SingleInstance singleInstance = new SingleInstance();
//将构造方法私有化,确保用户不能的用构造方法创建对象。
private SingleInstance() {
}
//使用公共的方法将变量提供出去,让用户通过类名引用static修饰的方法得到对象
public static SingleInstance getSingleInstance() {
return singleInstance;
}

}

//懒汉式–开始只是定义变量,什么时候使用什么时候赋值
class SingleInstance1{
//在类的内部创建一个当前类型的属性并赋值–在类的内部得到了当前类的额一个对象
//将变量私有化,让外界无法直接访问,给变量用static修饰让他称为全局的访问点
private static SingleInstance1 singleInstance1 ;
//将构造方法私有化
private SingleInstance1() {
}
//使用公共的方法将变量提供出去,让用户通过类名引用static修饰的方法得到对象
public static SingleInstance1 getSingleInstance1() {
if (singleInstance1==null) {
singleInstance1 = new SingleInstance1();
}
return singleInstance1;
}
//4.单例的功能区
int num;
}
public class Demo5 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    SingleInstance1   singleInstance=SingleInstance1.getSingleInstance1();
    SingleInstance1 singleInstance2 = SingleInstance1.getSingleInstance1();
    //判断两个对象名是不是只想到的同一个地址,如果相等。则表明只创建出一个对象
    System.out.println(singleInstance==singleInstance2);
        }

}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值