前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >让你一看就明白什么是单列模式(和静态静态工厂模式)--java版本_源码下载

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

作者头像
Hongten
发布2018-09-13 15:26:36
6080
发布2018-09-13 15:26:36
举报
文章被收录于专栏:HongtenHongten

项目结构:

运行效果:

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

代码部分:

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

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

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.singleton;
 5 
 6 /**
 7  * 火车类
 8  * @author hongten(hongtenzone@foxmail.com)
 9  * @date 2013-2-22
10  */
11 public class Train {
12 
13     /**
14      * 静态变量
15      */
16     private static Train train = new Train();
17     
18     /**
19      * 这是Train的私有构造方法,在其他地方Train是不能够进行下面的操作:<br>
20      * Train train = new Train();<br>
21      * 也就是限制了Train本身生成多个对象
22      */
23     private Train(){
24     }
25     /**
26      * 这里使用了静态工厂模式得到一个Train对象<br>
27      * 在这个方法中,我们也可以添加一些其他限制条件,如:如果要<br>
28      * new一个Train()对象,我们可以限制if(限制条件),然后再进行生成Train对象<br>
29      *   <code>if("广州到北京"){</code><br>
30      *           <code>return new Train();}</code><br>
31      *   但是不管什么,最后得到的总是一个唯一的对象<code>train</code>
32      * @return
33      */
34     public static Train getInstance(){
35         return train == null ? new Train() : train ;
36     }
37 }

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

代码语言:javascript
复制
 1 /**
 2  * 
 3  */
 4 package com.b510.singleton.test;
 5 
 6 import com.b510.singleton.Train;
 7 
 8 /**
 9  * 单例模式测试
10  * 
11  * @author hongten(hongtenzone@foxmail.com)
12  * @date 2013-2-22
13  */
14 public class SingletonTest {
15 
16     public static void main(String[] args) {
17         // 一辆普快列车
18         Train train_PK = Train.getInstance();
19         // 一辆特快列车
20         Train train_TK = Train.getInstance();
21 
22         System.out.println(isSameTrain(train_PK, train_TK) ? "是同一辆列车" : "不是同一辆列车");
23     }
24 
25     /**
26      * 判断是否是同一辆列车
27      * @param t1 
28      * @param t2
29      * @return 是同一辆列车返回true
30      */
31     public static boolean isSameTrain(Train t1, Train t2) {
32         return t1 == t2;
33     }
34 
35 }

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

源码下载http://files.cnblogs.com/hongten/Singleton.zip

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-02-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档