------- android培训、java培训、期待与您交流! ----------
设计模式:解决某一类问题行之有效的方法,java中有23种设计模式。
单例设计模式:解决一个类在内存中只存在一个对象(即对象唯一)。
单例模式思想:
①.为了避免其他程序过多建立该类对象,先禁止其他程序建立该对象。
②.还为了让其他程序可以访问到该类对象,只好在本类中自定义一个对象。
③.为了方便其他程序对自定义对象的访问,可以提供一些访问方式。
代码实现设计思想:
①.将构造函数私有化,那么在内外将不能建立该类的对象。
②.在类中创建一个本类对象。
③.在类中提供一个方法可以获取到该对象。
代码实现:Example:
class lok{
public static void main(String[] args)
{
Demo d1=Demo.getInstance();
Demo d2=Demo.getInstance();
d1.show();
d2.show();
}
}
class Demo{
private Demo(){}
private static Demo s=new Demo();
public static Demo getInstance()
{
return s;
}
public void show()
{
System.out.println("单例设计模式!");
}
}
下面来说一下单例模式的内存分配情况:
内存分配图解:
对内存分配做一个说明:
①.读入主函数。
②.当扫描到Demo.getInstance()的Demo时,首先加载Demo类进入内存。
③.创建对象,private static Demo s=new Demo()
④.给对象在对内存中开辟内存空间,注意,new一个对象一定在堆中开辟空间。
⑤.对内存中内存空间返回一个地址赋给对象s。
⑥.调用getInstance()时,return一个s给d1,即把s对象的地址赋给d1.
⑦.d1对象指向堆内存。