单例设计模式

设计模式是在大量的实践中总结和理论化之后的代码结构、编程风格、以及解决问题的思考方式。常见的有23种设计模式。单例设计模式,代理设计模式,工厂设计模式,观察者设计模式,装饰设计模式…

● 单例设计模式
       类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。如果我们要让类在一个虚拟机中只能产生一个对象,我们首先必须将类的构造器的访问权限设置为private,这样,就不能用new操作符在类的外部产生类的对象了,但在类内部仍可以产生该类的对象。因为在类的外部开始还无法得到类的对象,只能调用该类的某个静态方法以返回类内部创建的对象,静态方法只能访问类中的静态成员变量,所以,指向类内部产生的该类对象的变量也必须定义成静态的。上述内容可以总结为以下三点:

  1. 构造方法私有化
  2. 静态属性指向实例
  3. public static的 getInstance方法,返回第二步的静态属性

●单例设计模式的作用
       某个类的对象在当前工程中只能有一个

-●单例设计模式实现的方式:懒汉式 vs 饿汉式

  • 懒汉式和饿汉式的概念
    饿汉式是立即加载的方式,无论是否会用到这个对象,都会加载。
    懒汉式,是延迟加载的方式,只有使用的时候才会加载。

  • 饿汉式和懒汉式的区别:
    饿汉式 :线程安全的
    懒汉式 :1.线程不安全的 2.延迟了对象的创建时机一定上程度上节省了内存的开销。(懒加载)

  • 代码

//饿汉式
class Bank{
	//1.私有化构造器
	private Bank(){}
	//2.创建一个该类的对象,并使用static修饰
	private static Bank bank = new Bank();
	//3.提供一个公共的方法,用来返回对象。该方法必须是静态方法(可以通过类名调用该方法)。
	public static Bank getInstance(){
		return bank;
	}
}

//懒汉式
class Computer{
	//1.私有化构造器
	private Computer(){}
	//2.提供一个该类的对象的声明
	private static Computer computer = null;
	//3.提供一个公共的方法,并返回对象
	public static Computer getInstance(){
		//4.创建对象
		if(computer == null){
			computer = new Computer();
		}
		return computer;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值