二十三种设计模式之一单例模式

单例模式定义: Ensure  a class has only one instance ,and provide a global point pf access to it( 确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例)

优点:1

  1. 内存只有一个实例 !减少内存开支特别对于频繁的创建和销毁而且又无法优化
  2. 减少系统性能开销
  3. 避免多重占用
  4. 可以设置全局访问点优化和共享资源

缺点

  1. 扩展难
  2. 对测试不利
  3. 与单一职责有冲突

使用环境:

  1. 要求生成唯一序列号的环境
  2. 再整个项目中需要一个共享访问点或共享数据
  3. 创建一个对象需要消耗的资源过多 如果要访问IO和数据库等资源
  4. 需要定义大量的静态常量和静态方法


代码结构:

第一种通用的:

public class Singleton {
	
	private  static final Singleton SINGLETON = new Singleton();
	//限制产生多个对象
	private Singleton(){
		
	}
	// 通过该方法获得实例对象
	private static Singleton getSingleton(){
		return SINGLETON;
	}
	// 类中的方法,尽量是static
	public static void doSomeThing(){
		
	}
}

第二种线程不安全的

public class Singleton {
	
		private  static Singleton SINGLETON = null;
		//限制产生多个对象
		private Singleton(){
			
		}
		// 通过该方法获得实例对象
		private static Singleton getSingleton(){
			if(SINGLETON==null){
				SINGLETON= new Singleton();
			}
			return SINGLETON;
		}
		// 类中的方法,尽量是static
		public static void doSomeThing(){
			
	}

}
注: 自己记录读设计之禅的笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值