zoukankan      html  css  js  c++  java
  • 让你一看就明白什么是单列模式(和静态静态工厂模式)java版本_源码下载

    项目结构:

    运行效果:

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

    代码部分:

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

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

     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

     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 }

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

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

  • 相关阅读:
    线性回归学习历程
    CART决策树的学习历程
    markdown测试
    开张大吉+代码测试
    使用tomcat启动dubbo项目
    ThreadLocal 工作原理、部分源码分析
    Dubbo项目demo搭建
    redis 操作 list 的测试
    redis 操作 hash 的测试
    redis 操作string 的测试
  • 原文地址:https://www.cnblogs.com/hongten/p/hognten_singleton.html
Copyright © 2011-2022 走看看