单例模式的目的就是要控制特定的类<强>只产生一个对象>强,当然也允许在一定情况下灵活的改变对象的个数。
,
一个类的对象的产生是由类构造函数来完成的,如果想限制对象的产生,一个办法就是:
1, <强>将构造函数变为私有的强>(至少是受保护的),使得外面的类不能通过引用来产生对象,
2,同时为了保证类的可用性,就必须<强>提供一个自己的对象强>以及<强>访问这个对象的静态方法强>。
,
单例模式可分为的和的。
有状态的单例对象一般也是可变的单例对象,多个单态对象在一起就可以作为一个状态仓库一样向外提供服务。
没有状态的单例对象也就是不变单例对象,仅用做提供工具函数。
,
<强> 强>
一、饿汉式:
singleton1。java:
/*
, *,创建人:颜超
, *,创建时间:2013-6-26
, *,文件名:singleton1。java
, *,创建型设计模式
, *,单例(singleton)
, *,饿汉式
, */
public class Singleton1 {
,//在自己内部定义自己一个实例
,//注意这是private 只供内部调用
, private static Singleton1 instance =, new Singleton1 ();
,//将构造函数设置为私有
, private Singleton1 () {
,, System.out.println (“new  an 实例!“);
,}
,//静态工厂方法,提供了一个供外部访问得到对象的静态方法
, public static Singleton1 getInstance () {
,, return 实例;
,}
, public static void main (String [], args), {
,, Singleton1.getInstance ();
,}
}
二,懒汉式:
singleton2。java:
/*
, *,创建人:颜超
, *,创建时间:2013-6-26
, *,文件名:singleton2。null