设计模式研究之——单例模式

单例模式:

       顾名思义只有一个实例的模式

创建一个单例的必备条件为

       1、私有的构造方法;2、私有的静态引用变量;3、返回静态引用变量的公开方法

单例模式根据创建实例对象的阶段时间不同将分为两种形式的单例:

一种是饿汉模式

饿汉模式就是这条汉子非常饥饿,只要一开饭就立马要吃饱。即:在单例被加载的时候就创建实例化一个对象交给引用

public class Singleton{

private static Singleton instance = new Singleton();//私有的静态引用变量

private Singleton(){}//私有构造方法

public static Singleton getInstance(){
     return instance;
}
//返回静态引用变量的公开方法
}

另一中是懒汉模式。

懒汉呢就是懒得动弹,只有你踹他一脚他才行动起来干事。即:在调用获取单例对象的时候才实例化引用

public class Singleton{
private static Singleton instance;//私有的静态变量的引用
private Singleton(){}//私有构造方法
public static Singleton getInstance(){
	if(instance == null ){
		instance = new Singleton();
	}
	return  instance;
}
 
}

 

为什么程序员都比较青睐单例模式呢:

       a、内存中只存在一个对象,减少了内存的消耗

       b、避免频繁的创建对象销毁对象,提高性能

       c、可以全局访问,避免了对共享资源的多重访问

使用单例的场景有哪些?

       a、需要频繁创建的对象

       b、创建耗时耗资源而且经常使用的对象

       c、数据库持久化的类等

单例注意事项:

       a、只能使用单例类中的公有方法获得单例对象,不能使用反射,否则将会实例化一个新的对象

       b、多线程使用单例共享资源时,要注意线程安全问题。

 


 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值