个人对单例设计模式的理解
2018-03-08 02:06
309 查看
单例设计模式:主要用来保证一个类的对象从程序的开始到结束只有一个,单例也就是只有一个类的对象,即类的对象的唯一性。
怎样才能保证类的对象的唯一性呢?
1.将类中的构造参数进行封装,无法使用new 创建类的对象
2.别的类无法创建本类的对象,因此只能在本类中创建本类的对象
3.本类中的唯一对象要想让其他类使用,只能通过类名调用,因此需要在本类中创建一个static修饰的方法,其他类在调用本类方法的时候获取本类中唯一的对象。
而单例设计又分为“饿汉式”和“懒汉式”两种模式。饿汉式即在类加载时就在堆中开辟空间创建对象:class Single {
// 1、私有化构造函授
private Single() {
}
// 2、创建本类对象
private static Single s = new Single();
// 3、定义一个方法返回本类的对象
public static Single getInstance() {
return s;
}
// 测试方法
public void test() {
System.out.println("测试方法");
}
}懒汉式即在类加载时没有在堆中开辟空间,只有在使用对象时才在堆中开辟空间创建对象:class Single {
// 1、私有化构造函授
private Single() {
}
// 2、创建本类对象
private static Single s = null;
// 3、定义一个方法返回本类的对象
public static Single getInstance() {
if (s==null) {
s = new Single();
}
return s;
}
// 测试方法
public void test() {
System.out.println("测试方法");
}
}
怎样才能保证类的对象的唯一性呢?
1.将类中的构造参数进行封装,无法使用new 创建类的对象
2.别的类无法创建本类的对象,因此只能在本类中创建本类的对象
3.本类中的唯一对象要想让其他类使用,只能通过类名调用,因此需要在本类中创建一个static修饰的方法,其他类在调用本类方法的时候获取本类中唯一的对象。
而单例设计又分为“饿汉式”和“懒汉式”两种模式。饿汉式即在类加载时就在堆中开辟空间创建对象:class Single {
// 1、私有化构造函授
private Single() {
}
// 2、创建本类对象
private static Single s = new Single();
// 3、定义一个方法返回本类的对象
public static Single getInstance() {
return s;
}
// 测试方法
public void test() {
System.out.println("测试方法");
}
}懒汉式即在类加载时没有在堆中开辟空间,只有在使用对象时才在堆中开辟空间创建对象:class Single {
// 1、私有化构造函授
private Single() {
}
// 2、创建本类对象
private static Single s = null;
// 3、定义一个方法返回本类的对象
public static Single getInstance() {
if (s==null) {
s = new Single();
}
return s;
}
// 测试方法
public void test() {
System.out.println("测试方法");
}
}
相关文章推荐
- 个人对单例设计模式理解
- 个人对单例设计模式的饿汉式与懒汉式理解
- 个人对设计模式的理解-->桥接模式
- 设计模式及其学习方法的个人理解
- 设计模式之Builder (创建者模式)的一些个人理解(转)
- 设计模式学习笔记(个人思考理解)
- 个人对于PHP设计模式之工厂模式的理解
- JAVA设计模式六大原则个人理解【上】
- 个人对设计模式的理解-->建造者模式
- 设计模式个人理解
- 几种设计模式分类的个人理解
- 个人理解的Android设计模式之观察者模式
- 个人对设计模式的理解-->适配器模式
- 设计模式之个人通俗理解
- 设计模式之个人理解--单例模式
- 设计模式理解(个人笔记)
- mvp设计模式的个人理解
- 设计模式之工厂模式(个人理解)
- 关于android的设计模式---MVP的个人理解
- 单例设计模式的个人理解