标签:
·单例类
单实例类,就是这个类只能创建一个对象,保证了对象实例的唯一性。
例子:单实例类
class Singleton { private static Singleton instance; //使用static修饰,因为它要在该类的静态方法中被访问,作用 //是一个引用变量指向对象。 private Singleton(){}; //提供一个私有的构造器,使用方法来控制它创建对象的个数。 //方法必须是public的和static的,因为方法要公开被下面的类调用并且下面的s1引用变量获取方法的方式是 //通过类.方法来实现的。因为不能创建对象,所以只能用类。这样就约束了只能创建一个对象。 public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } public class SingletonTest { public static void main(String[] args) { Singleton s1 = Singleton.getInstance(); Singleton s2 = Singleton.getInstance(); System.out.println(s1 == s2); //结果为true,这里可以看出确实是同一个对象 "=="比较两个对象的内存地址是否相同。 } }
//饿汉式
//class single1
//{
// private static single1 s=null;
// private single1() {}
// public static single1 getinstance()
// {
// if(s==null)
// s=new single();
// return s;
// }
//}
//懒汉式
//原则 定义单例时原则上用饿汉式
class singledemo
{
public static void main(String [] args)
{
System.out.println("Hello world");
}
}
1。为了避免其他程序多建立该类对象。先禁止其他程序建立该类对象
2。还未了让其他程序反问改类对象。只好在本类中。自定义一个对象
3。为了方便其他程序对自定义对象的访问。可以对外提供一些访问方式
为了避免其他程序多建立该类对象。先禁止其他程序建立该类对象。
如果对象中构造函数可以传入参数。建立对象。就会改变对象初始化数据。而该对象只提供功能。避免其他调用着创建对象,而改动初始数据。所以封装对象
1、单例模式能够保证一个类仅有唯一的实例,并提供一个全局访问点。
2、单例模式主要有3个特点:
(1)、单例类确保自己只有一个实例。
(2)、单例类必须自己创建自己的实例。
(3)、单例类必须为其他对象提供唯一的实例。
3、对于懒汉模式,我们可以这样理解:该单例类非常懒,只有在自身需要的时候才会行动,从来不知道及早做好准备。它在需要对象的时候,才判断是否已有对象,如果没有就立即创建一个对象,然后返回,如果已有对象就不再创建,立即返回。
4、对于饿汉模式,我们可以这样理解:该单例类非常饿,迫切需要吃东西,所以它在类加载的时候就立即创建对象。
标签:
原文地址:http://www.cnblogs.com/zarea/p/4550199.html