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

    一些人总结出来用来解决特定问题的固定的解决方案。

      解决一个类在内存中只存在一个对象,想要保证对象的唯一。

        1 为了避免其他程序过多的建立该类对象。禁止其他程序建立该类对象。

        2 为了其他程序可以访问该类对象,在本类中自定义一个对象。

        3 方便其他程序对自定义类的对象的访问,对外提供一些访问方式。

     代码:

        1将构造函数私有化

        2在类中创建一个私有的本类对象

        3提供一个用类名调用的公有方法获取该对象。

      懒汉模式 – 通常被称为延迟加载。注意存在线程安全问题.

    懒汉式的单例模式线程安全问题的解决方案:

        class Single{
        
        //声明本类的一个私有的成员变量
        private static Single single;
        
        //第一步 : 私有化构造方法
        private Single(){
            
        }
         //  第三步:提供一个公共的方法获取该类的实例对象
        public static Single getInstance(){
            if(single==null){
            synchronized (single) {            
                    if(single==null){
                         single = new Single();
                    }
                }
            }
            return single;
        }
    }

    饿汉模式

    class Single {
    
        private static Single s = new Single(); // 恶汉式
    
        private Single() {
    
        }
    
        public static Single getInstance() {
            return s;
        }
    }
  • 相关阅读:
    2015上海网络赛 A Puzzled Elena
    容斥原理——uva 10325 The Lottery
    2015北京网络赛B题 Mission Impossible 6
    2015北京网络赛A题The Cats' Feeding Spots
    POJ3087——map——Shuffle'm Up
    POJ3126——BFS——Prime Path
    POJ1426——BFS——Find The Multiple
    算法总结——Prim
    算法总结——Dijkstra
    算法总结——Floyed
  • 原文地址:https://www.cnblogs.com/loveincode/p/5342836.html
Copyright © 2011-2022 走看看