黑马程序员——设计模式之单例设计模式

时间:2023-02-19 15:59:11
------- android培训java培训、期待与您交流! ----------

设计模式:对问题行之有效的解决方式。其实是一种思想。

Q:单例设计模式所解决的问题?

可以保证一个类在内存中的对象的唯一性。

Q:什么时候需要保证一个类在内存中的对象的唯一性?

例如多个程序使用同一个配置信息对象时,需要保证该对象的唯一性。

Q:如何保证对象的唯一性?

1. 不允许其他应用程序用new创建该类对象

2. 在该类创建一个本类的实例。

3.再对外提供一个方法让其他程序可以获取该对象。

Q:步骤?

1. 私有化该类构造函数

2. 在本类中new一个对象

3. 定义一个公有方法,将创建的对象返回

 

/*

需求,一个饿汉式单例

*/



class Single {

private static Single s = new Single();

private Single(){}

public static Single getInstance(){

return s;

}

}



class SingleDemo1{

Single s = Single.getInstance();

}





class SingleDemo2 {

Single2 s = Single2.getInstance();

}



//懒汉式单例模式

class Single2 {

private static Single2 s = null;

//此时类加载进内存,但是没有对象存在,当没有对象时只有调用getInstance()方法时才创建对象

private Single2(){}

public static Single2 getInstance(){

if (s == null) {

synchronized(Single2.class)

{

if(s == null) {

s = new Single2();

}

}

}

return s;

}

}