资讯专栏INFORMATION COLUMN

设计模式- 单例模式

XUI / 1925人阅读

摘要:最近在看一些深度学习的一些资料由于大规模的模型训练对代码效率质量要求比较高最近在复习一些设计模式和算法的资料我会保持每周一篇的节奏基本上就会讲算法和设计模式,写文章的同时加深一下自己的记忆,有错误之处望大家指正什么是设计模式设计模式就是自古

最近在看一些深度学习的一些资料 由于大规模的模型训练对代码效率质量要求比较高最近在复习一些设计模式和算法的资料 我会保持每周一篇的节奏基本上就会讲算法和设计模式,写文章的同时加深一下自己的记忆,有错误之处望大家指正

什么是设计模式? 设计模式就是 自古空气多余恨,唯有套路得人心 设计模式就写代码的一种套路 就像我们中华武术的套路一样各个门派都有自己固定的套路,代码也一样不同的场景应用不同的代码套路,这些套路是大家总结出来公认比较好的一种代码编写思想(代码编写套路)

单例模式:他是一种设计模式,他的作用是让一个类只能拥有一个实例 不论你创建 调用了多少次 他还是只有一个实例

单例模式通用的有两种写法 一种叫做 饿汉模式 一种叫懒汉模式

饿汉式

    package singleCase;  
    /** 
     * 单例  饿汉模式 
     *     饿汉模式下  实例随着类的加载而创建 
     * @author admin 
     * 
     */  
    public class HungryManPattern {  
        //创建类的 唯一实例(注意是唯一实列)  private static 修饰  
        private static HungryManPattern singleCase = new HungryManPattern();  
        //将构造方法私有化 杜绝通过构造方法创建实例  
        private HungryManPattern(){  
        }  
        //提供一个获取实例(你也可以理解成对象)的方法  
        public static HungryManPattern getsingleCase(){  
              
            return singleCase;  
        }  
          
      
    }  

懒汉式

懒汉式

[java] view plain copy

    package singleCase;  
    /** 
     * 懒汉模式 
     * @author admin 
     * 
     */  
    public class lazyPattern {  
        //声明一个 lazyPattern 变量  
        private static lazyPattern singleCase;  
        //将构造方法私有化 杜绝通过构造方法创造实例  
        private lazyPattern(){  
              
        }  
        //提供公共方法访问实例  
        public static lazyPattern getsingleCase(){  
            //如果 singleCase 为空的时候我们为他创建一个实例  
            if(singleCase == null){  
                singleCase = new lazyPattern();           
            }         
            return singleCase;  
        }  
      
    }  
我们可以用一个测试类来看他是创建了几个实例 

    package singleCase;  
      
    public class sibgleCaseTest {  
          
        public static void main(String[] args) {  
               HungryManPattern t1 = HungryManPattern.getsingleCase();  
               HungryManPattern t2 = HungryManPattern.getsingleCase();  
               if(t1 == t2){  
                   System.out.println("饿汉式 只创建了一个实例 ");  
               }  
                 
               lazyPattern s1 = lazyPattern.getsingleCase();  
               lazyPattern ss2 = lazyPattern.getsingleCase();  
                 
               if(t1 == t2){  
                   System.out.println("懒汉式 只创建了一个实例 ");  
               }  
                 
                  
        }  
      
    }  

运行结果

                          发现问题请联系我(小弟在这多谢指教)邮箱wavesape@126.com
                                            addPerson : hzb 2018-3-10 00:19:12


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/68731.html

相关文章

  • Android中的设计模式单例模式

    摘要:总结单例是运用频率很高的模式,因为客户端没有高并发的情况,选择哪种方式并不会有太大的影响,出于效率考虑,推荐使用和静态内部类实现单例模式。 单例模式介绍 单例模式是应用最广的模式之一,也可能是很多人唯一会使用的设计模式。在应用单例模式时,单例对象的类必须保证只用一个实例存在。许多时候整个系统只需要一个全局对象,这样有利于我么能协调整个系统整体的行为。 单例模式的使用场景 确保某个类有且...

    yzd 评论0 收藏0
  • JavaScript设计模式----单例模式

    摘要:不符合设计模式中的单一职责的概念。引入代理实现单例模式引入代理实现单例模式的特点我们负责管理单例的逻辑移到了代理类中。的单例模式对比在以上的代码中实现的单例模式都混入了传统面向对象语言的特点。 声明:这个系列为阅读《JavaScript设计模式与开发实践》 ----曾探@著一书的读书笔记 1.单例模式的特点和定义 保证一个类仅有一个实例,并且提供一个访问它的全局访问点。 2.传统面向对...

    selfimpr 评论0 收藏0
  • JavaScript设计模式-第一部分:单例模式、组合模式和外观模式

    摘要:但是,这并不是采用单例的唯一原因。使用命名空间单例模式也被称为模块设计模式。函数内部声明了一些局部函数和或变量。紧随函数声明放置即可立即执行外部函数,并将所得的对象文字费赔给变量。 JavaScript设计模式-第一部分:单例模式、组合模式和外观模式 设计模式是一些可靠的编程方式,有助于保证代码更加易于维护、扩展及分离,所有设计模式在创建大型JavaScript应用程序时均不可或缺 单...

    betacat 评论0 收藏0
  • Java设计模式-单例模式(Singleton Pattern)

    摘要:如果需要防范这种攻击,请修改构造函数,使其在被要求创建第二个实例时抛出异常。单例模式与单一职责原则有冲突。源码地址参考文献设计模式之禅 定义 单例模式是一个比较简单的模式,其定义如下: 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 或者 Ensure a class has only one instance, and provide a global point of ac...

    k00baa 评论0 收藏0
  • Java 设计模式单例模式

    摘要:在设计模式一书中,将单例模式称作单件模式。通过关键字,来保证不会同时有两个线程进入该方法的实例对象改善多线程问题为了符合大多数程序,很明显地,我们需要确保单例模式能在多线程的情况下正常工作。 在《Head First 设计模式》一书中,将单例模式称作单件模式。这里为了适应大环境,把它称之为大家更熟悉的单例模式。 一、了解单例模式 1.1 什么是单例模式 单例模式确保一个类只有一个实例,...

    everfight 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<