zoukankan      html  css  js  c++  java
  • 单例设计模式

    今天学习了一下单例设计模式,什么是单例设计模式呢?就和古代时候只能有一个皇帝一样,有些时候我们会要求某个类只能有一个对象实例,例如工具类。那么如何实现呢?

    正常的一个类定义如下:
    1. class SingleTon{
    2. }
    在构造对象实例的时候我们使用new SingleTon(),那么这样就可以构建多个对象实例,为了不让用户可以任意的构建对象,这里我们把类的默认构造函数重写一下并声明为private,问题又来了,这样做的话会导致一个对象也new不了。为了解决这个问题,可以在类的内部new一个类对象,这就产生了单例设计模式的两种方法,“饿汉式”和“懒汉式”。

    “饿汉式”SingleTon类定义如下:
    1. class SingleTon1{
    2. private SingleTon1(){
    3. }
    4. public static SingleTon instance = new SingleTon1();
    5. }
    "懒汉式":
    1. class SingleTon2{
    2. private SingleTon2(){
    3. }
    4. private static SingleTon2 instance;
    5. public static SingleTon2 getInstance() {
    6. if (instance == null) {
    7. instance = new SingleTon2();
    8. }
    9. return instance;
    10. }
    11. }
    饿汉式和懒汉式的区别在于什么时候实例化instance对象,饿汉式在类加载的时候就实例化了instance对象,而懒汉式只有在第一次调用getInstance函数是才实例化instance对象,所以饿汉式在类加载的时候比较慢而在外面使用instance的时候比较快,相反,懒汉式则在类加载的时候比较快而在第一次使用getInstance的时候比较慢。




  • 相关阅读:
    安装依赖包
    python之高阶函数编程
    ubuntu之安装java浏览器插件
    python之函数式编程
    openstack第1天
    mysql null 相关bug
    nginx 【转】
    python mock
    查看docker 内各个容器的ip
    python sqlparse 各种 token
  • 原文地址:https://www.cnblogs.com/starlitnext/p/4092988.html
Copyright © 2011-2022 走看看