黑马程序员---------------------编写一个延迟加载的单例设计模式
2013-12-25 17:57
387 查看
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
分析:
* 分析1:单例设计模式:保证对象在内存中的唯一性
* 分析2: 延迟加载:对象在被调用时候才初始化,也叫做懒汉式,单例的一种体现
* 分析3:懒汉式的安全问题:当多个程序调用自定义方法时,可能造成对象的不唯一
*
* 解题思路:
* 1.将类中构造方法私有化,在本类中创建本类对象,对外提供获取本类对象的方法,满足分析1
* 2.本类声明对象为null;在对外方法中判断本类对象是否为为null,为null则创建对象,满足分析2
* 3.在对外提供的方法中添加>public> Student>
Student>
Student>
System.out.println(s1); //打印
System.out.println(s2);
System.out.println(s3);
}
static class Student{
/*声明学生类属性*/
private String name;
private int age;
/*构造方法私有化*/
private Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
/*创建本类对象*/
>
/*对外提供调用本类对象的方法*/
public static Student getStudent(){
synchronized (Student.class) { //添加同步代码块
>
>
}
}
return zhangsan; //返回张三对象
}
//提供toString方法
public String toString() {
return "姓名:"+name+" 年龄: "+age;
}
}
}
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
分析:
* 分析1:单例设计模式:保证对象在内存中的唯一性
* 分析2: 延迟加载:对象在被调用时候才初始化,也叫做懒汉式,单例的一种体现
* 分析3:懒汉式的安全问题:当多个程序调用自定义方法时,可能造成对象的不唯一
*
* 解题思路:
* 1.将类中构造方法私有化,在本类中创建本类对象,对外提供获取本类对象的方法,满足分析1
* 2.本类声明对象为null;在对外方法中判断本类对象是否为为null,为null则创建对象,满足分析2
* 3.在对外提供的方法中添加>public> Student>
Student>
Student>
System.out.println(s1); //打印
System.out.println(s2);
System.out.println(s3);
}
static class Student{
/*声明学生类属性*/
private String name;
private int age;
/*构造方法私有化*/
private Student(String name, int age) {
super();
this.name = name;
this.age = age;
}
/*创建本类对象*/
>
/*对外提供调用本类对象的方法*/
public static Student getStudent(){
synchronized (Student.class) { //添加同步代码块
>
>
}
}
return zhangsan; //返回张三对象
}
//提供toString方法
public String toString() {
return "姓名:"+name+" 年龄: "+age;
}
}
}
----------------------ASP.Net+Android+IOS开发、.Net培训、期待与您交流! --------------------
相关文章推荐
- java编写一个延迟加载的单例设计模式
- 面试中临时让写的代码——编写一个延迟加载的单例设计模式
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- 黑马程序员——设计延迟加载的“单例设计模式”
- 黑马程序员,延迟加载的单例设计模式
- Java练习题-编写一个线程安全的延迟加载单例模式(懒汉模式)
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象
- Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片
- JAVA单利设计模式中的延迟加载
- [置顶] Java 多线程学习笔记(十一) 单例设计模式(延迟加载/懒汉模式)DCL解决线程安全问题
- 懒汉式 延迟加载单例设计模式
- 延迟加载的单例设计模式
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象[修订081217]
- 黑马程序员:单态设计模式static(使类在内存只有一个实例对象)
- 多线程操作单例设计模式的延迟加载(懒汉式)
- 设计延迟加载的“单例设计模式”
- 多线程三,同步函数、静态同步函数和单例设计模式中懒汉式即延迟加载模式的多线程问题(毕向东老师)
- 设计模式系列---两种懒汉式延迟加载单例模式
- 延迟加载的单例设计模式
- 自己编写的一个Json工具类,实现了反射将整个Object转换为Json对象的功能,支持Hibernate的延迟加载对象