您的位置:首页 > 编程语言 > Java开发

让你一看就明白什么是单列模式(和静态静态工厂模式)--java版本_源码下载

2013-02-22 23:51 363 查看
项目结构:



运行效果:



=================================================

代码部分:

=================================================

/Singleton/src/com/b510/singleton/Train.java

/**
*
*/
package com.b510.singleton;

/**
* 火车类
* @author hongten(hongtenzone@foxmail.com)
* @date 2013-2-22
*/
public class Train {

/**
* 静态变量
*/
private static Train train = new Train();

/**
* 这是Train的私有构造方法,在其他地方Train是不能够进行下面的操作:<br>
* Train train = new Train();<br>
* 也就是限制了Train本身生成多个对象
*/
private Train(){
}
/**
* 这里使用了静态工厂模式得到一个Train对象<br>
* 在这个方法中,我们也可以添加一些其他限制条件,如:如果要<br>
* new一个Train()对象,我们可以限制if(限制条件),然后再进行生成Train对象<br>
*   <code>if("广州到北京"){</code><br>
*           <code>return new Train();}</code><br>
*   但是不管什么,最后得到的总是一个唯一的对象<code>train</code>
* @return
*/
public static Train getInstance(){
return train == null ? new Train() : train ;
}
}


/Singleton/src/com/b510/singleton/test/SingletonTest.java

/**
*
*/
package com.b510.singleton.test;

import com.b510.singleton.Train;

/**
* 单例模式测试
*
* @author hongten(hongtenzone@foxmail.com)
* @date 2013-2-22
*/
public class SingletonTest {

public static void main(String[] args) {
// 一辆普快列车
Train train_PK = Train.getInstance();
// 一辆特快列车
Train train_TK = Train.getInstance();

System.out.println(isSameTrain(train_PK, train_TK) ? "是同一辆列车" : "不是同一辆列车");
}

/**
* 判断是否是同一辆列车
* @param t1
* @param t2
* @return 是同一辆列车返回true
*/
public static boolean isSameTrain(Train t1, Train t2) {
return t1 == t2;
}

}


引用:“单例模式好似计划生育,生还是不生是自己的责任” 《大话设计模式》 程杰 著

源码下载http://files.cnblogs.com/hongten/Singleton.zip
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: