设计模式之单例模式
来源:互联网 发布:androidframework源码 编辑:程序博客网 时间:2024/05/16 11:54
单例模式的定义:确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
具体代码实现:
package SingleObjectModel;/** * 单例模式 * @author minGe_000 * */public class Student {public String name;//1.构造方法私有化private Student(){}private Student(String name){this.name = name;}//2.提供唯一的对象private static Student stu;//3.提供一个get实例的函数public static synchronized Student getInstance(String n){if(stu==null){stu = new Student(n);}return stu;}}
其中构造方法私有化是为了限制产生多个对象;
里面的静态方法是为了获取唯一的实例对象;
注意问题在多个线程同时执行的时候,如
new Thread(){ public void run() {Student stu = Student.getInstance("abc");};}.start();new Thread(){ public void run() {Student stu1 = Student.getInstance("abc");};}.start();因为对象的初始化话需要时间在进行if(stu==null)判断时候俩个线程可能同时判断为真继续运行下去,此时在内存中就回有两个对象了,因此在线程方法前加synchronized 关键字来解决线程不安全因素(饿汉式)。
0 0
- 设计模式之 单例设计模式
- 设计模式之 单例设计模式
- 设计模式之单例设计模式
- 设计模式之-----------单例设计模式
- 设计模式之:单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之单例设计模式
- 设计模式之-单例设计模式
- 设计模式之单例设计模式 标签: 设计模式
- 设计模式之单例
- 设计模式之单例
- 设计模式之 单例
- AOP面向切面编程
- 设计模式-适配器模式
- 《Java数据结构与算法》笔记-CH5-链表-9实现带迭代器的链表
- 关于连接myEclipse连接mysql时出现 Table 'performance_schema.session_variables' doesn't exist错误解决方法
- PHP GET参数中文乱码解决
- 设计模式之单例模式
- 344. Reverse String--LeetCode Record
- 在Bluemix 使用OpenWhisk & Node-red 開發Event-Driven 應用系
- Glide的使用
- [译]Python中有效的字符串合并方法
- Android动画之---帧动画
- hibernate学习之三----映射关系
- Android ProGuard打包混淆代码
- "安卓网络请求图片三级缓存"-带您写一个自定义图片三级缓存.