• java设计模式之singleton模式编程


    【需求说明】:请编写一个Singleton模式的程序
    【需求分析】:Singleton模式的主要作用是保证在Java应用程序中,一个类Class只有一个实例存在。在很多操作中,比如建立目录数据库连接都需要这样的单线程操作。使用Singleton的好处还在于可以节省内存,因为它限制了实例的个数,有利于Java垃圾回收。一般Singleton模式通常的形式为:定义一个类,它的构造函数为private的,它由一个static的private变量,在类初始化时实例化,通过一个public的getInstance方法获取对它的引用,继而调用其中的方法。
     【需求实现】:直接进入源码,源码注释已经很详细了

     1 ==========【饿汉式】==========
     2 package edu.aeon.model.singleton;
     3 
     4 /**
     5  * 
     6  * @author lzj
     7  * @create 2017年10月20日 上午10:00:13
     8  * @describe 单例模式之饿汉式
     9  */
    10 public class Singleton1 {
    11     /**
    12      * 【说明】构造私有化,防止除过本类以外的类实例化该对象
    13      * 只能通过本类提供的特定方法去去调用
    14      */
    15     private Singleton1() {
    16     }
    17     /**
    18      * 【说明】内部实例化Singleton对象
    19      */
    20     private final static  Singleton1 instance=new Singleton1();
    21     /**
    22      * 【说明】:提供供外部访问的静态方法
    23      * at 2017年10月20日 上午7:59:32 by lzj
    24      * @parameters1 无
    25      * @return Singleton
    26      */
    27     public static Singleton1 getInstance() {
    28         return instance;
    29     }
    30     /**
    31      * 
    32      * at 2017年10月20日 上午8:03:55 by lzj
    33      * @parameters1 String[] args
    34      * @return void
    35      */
    36     public static void main(String[] args) {
    37         
    38     }
    39 }
    40 ==========【懒汉式】==========
    41 package edu.aeon.model.singleton;
    42 
    43 /**
    44  * @author lzj
    45  * @create 2017年10月20日 上午9:39:07
    46  * @describe 单例模式之懒汉式
    47  */
    48 public class Singleton2 {
    49     /**
    50      * 【说明】构造私有化,防止除过本类以外的类实例化该对象
    51      * 只能通过本类提供的特定方法去去调用
    52      */
    53     private Singleton2() {
    54         
    55     }
    56     private static  Singleton2 instance=null;
    57     /**
    58      * at 2017年10月20日 上午9:39:07 by lzj
    59      * @Parameters1 无
    60      * @Returns void
    61      */
    62     private static synchronized Singleton2 getInstance() {
    63         //使用时生成实例,提高了效率
    64         if(instance==null) {
    65             instance = new Singleton2();
    66         }
    67         return instance;
    68     }
    69     /**
    70      * 
    71      * at 2017年10月20日 上午10:03:56 by lzj
    72      * @Parameters1 String[] args
    73      * @Returns void
    74      */
    75     public static void main(String[] args) {
    76         
    77     }
    78 
    79 }
    单击"+"查看

    如有任何疑问可联系邮箱: 给我发邮件、或直接联系QQ:1584875179 || 点返回首页

  • 相关阅读:
    解决windows 下Java编译和运行版本不一致的错误has been compiled by a more recent version
    解决两个OpenCV 报错 (raise.c and GTK) ,重新安装和编译
    Java|如何使用“Java”爬取电话号码(转载)
    Java手机号码工具类(判断运营商、获取归属地)以及简要的原理跟踪(转载)
    Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet
    mysql分库分表
    python将html文件转换为pdf
    mysql获取字段名和对应的注释
    mysql大表查询慢对应方案
    harbor安装
  • 原文地址:https://www.cnblogs.com/aeon/p/7698203.html
Copyright © 2020-2023  润新知