zoukankan      html  css  js  c++  java
  • [设计模式]01.单例模式

    单例模式

    前言

    单例模式是非常实用的设计模式。单例类只会被创建一次,而后就会一直被贮存在内存中,许多具有管家性质的功能模块,都要尽量使用单例模式的思想去设计。

    特点

    1. 有且仅有一个实例。单例类只会被创建一次,而后就会一直被贮存在内存中
    2. 具备管家性质。
    3. 单例类的成员变量的信息,会一直保存。

    写法

    1. 构造方法必须私有。
    2. 提供唯一一个获取该类实例的入口方法。业内规范方法命名为:getInstance()。
    3. 自己创建自己。

    用例

    1. 刚刚结束的广告模块的开发,就用到了单例模式。有一个ADSystem类,负责对广告信息获取,请求,分发,存储等的所有操作。
    2. 游戏的声音管理,也有用到单例类,有一个声音管理者,负责对所有游戏声音的管理,播放,暂停,加载,释放。
    3. cocos2d-x里非常著名的Director,就是一个单例类。

    代码写法

    单例类有多种写法,现在贴一种最好用的最安全的写法。

    public class Singleton {
    
        // ---------------
        // 成员变量
        // ---------------
        private int filed1;
        private int filed2;
        private int filed3;
    
    
    
        // ---------------
        // 构造方法
        // ---------------
        private Singleton() {}
    
        private static class SingletonHolder {
    
            private static final Singleton INSTANCE = new Singleton();
        }
    
        public synchronized static Singleton getInstance() {
    
            return SingletonHolder.INSTANCE;
        }
    
        /**
        * 方法一
        */
        public void method1(){}
    
        /**
        * 方法二
        */
        public void method2(){}
    
        /**
        * 方法三
        */
        public void method3(){}
    }
    

    如果要设计单例类,按照上面的模板去设计就好了。
    调用代码:

        // 执行方法一
        Singleton.getInstance().method1();
        // 执行方法二
        Singleton.getInstance().method2();
        // 执行方法三
        Singleton.getInstance().method3();
    

     

    本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 
    转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/5008351.html

     

     

  • 相关阅读:
    easyUI的汇总列,在前端生成
    return返回两个三元表达式的和,返回不正确,同样要注意在JavaScript中,也是如此
    清除浮动有哪些方式?比较好的方式是哪一种?
    浏览器重置样式
    MUI框架的缩写输入
    会自动消失的提示信息
    JSON.stringify转化报错
    Jquery on方法绑定事件后执行多次
    属性索引选择元素
    字符串赋值数字时的问题
  • 原文地址:https://www.cnblogs.com/superdo/p/5008351.html
Copyright © 2011-2022 走看看