模式设计(二)------单例模式
来源:互联网 发布:ios视频录制软件 编辑:程序博客网 时间:2024/04/30 04:49
单例模式:
抽象定义:顾名思义,就是只有一个实例。 作为对象的创建模式, 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
简介:很多人以为单例模式很简单,几行代码之内搞掂,其实这是比较2的。
Public class Test{
Privatestatic Test instance = null;
Public static TestgetInstance(){
If(instace == null)
instace = new Test();
return instance;
}
……….
……….
}
在没看设计模式之前,其实我自己也很2,自以为是很聪明,其实打错特错了。
请看以下分析就知道:
有些小聪明的人觉得,这还是不很简单的问题,自己加锁就OK啦,只需轻轻加上synchronized就收工了
Public class Test{
Privatestatic Test instance = null;
Public static synchronizedTest getInstance(){
If(instace == null)
instace = new Test();
return instance;
}
……….
……….
}
当然这也是一种解决方法,只是因为加锁的原因,每个时刻只能是单一线程来访问,假如很多很多线程同时访问,就只能在队列中慢慢等候了……
学问是永无止境的,其实有更加优雅的方法来解决这个问题----“双重检查加锁”
Public class Test{
Privatevolatile static Test instance;
Publicstatic Test getInstance(){
If(instance== null){
Synchronized(Test.class){
If(instance== null)
Instance= new Test();
}
}
Return instance;
}
}
到这里我们是不是觉得我们以前写代码弱爆,而且很多误区。
- 模式设计(二)------单例模式
- 设计模式(二)--单例模式
- 设计模式(二)单例模式
- 设计模式(二):单例模式
- 设计模式(二)单例模式
- 设计模式(二)单例设计模式
- Java单例设计模式(二)
- 设计模式之二--- 单例模式
- C++设计模式[二]单例模式
- 【设计模式】二、单例模式
- 设计模式(二)-------->单例模式
- 设计模式之单例模式(二)
- 二、设计模式之一-----单例模式
- 【设计模式 二】单例模式
- c++设计模式二,单例模式
- 设计模式<二>单例模式
- 设计模式<二>单例模式
- 设计模式之(二)--单例模式(singleton)
- 临接表
- java中valotile
- (HttpURLConnection) url.openConnection();问题
- 二维数组指针
- json学习笔记
- 模式设计(二)------单例模式
- Sqlite 管理工具 SQLiteDeveloper及破解
- 使用Xcode和Instruments调试解决iOS内存泄露
- 去除powered by ecshop
- C#绘图线
- 一个30年老程序员的回顾(八)
- 浅谈Web系统的三种模型
- 模式设计(三)------状态模式
- 在MFC的单文档里,每个类获得其他类指针的一套方法