zoukankan      html  css  js  c++  java
  • 01【创建型】单例模式

    单例模式

    所谓单例模式,就是这个类在你的系统中只作为一个的存在,是为了防止重复的创造对象、销毁对象所带来的内存的开销。并且在这个类当中提供一个全局访问点

    主要解决:一个全局使用的类频繁地创建与销毁。

    何时使用:当您想控制实例数目,节省系统资源的时候。

    特点:

    1. 单例类只有一个实例对象;
    2. 该单例对象必须由单例类自行创建;
    3. 单例类对外提供一个访问该单例的全局访问点;

    举个栗子:

    大家都知道我们用SpringBoot作为服务端,向前台返回数据的时候,一般返回的都是JsonObject

    这个Object所有的控制器返回数据都可以用到,我们这里就可以考虑用单例模式来初始化这个类,

    单例模式在这里分为好几个模块;

    • 懒汉式
    • 饿汉式(最常用)在初始化类的时候就初始化成员变量
    public class JsonObject {
    
        private static Map<String,Object> map = new HashMap<>(16);
    
        //构造方法私有
        private JsonObject(){}
    
        //提供全局访问点 synchronized(线程安全)
        public static synchronized Object resultOk(Object data){
            map.clear();
    
            map.put("status","ok");
            map.put("data",data);
            map.put("msg","请求成功");
    
            return map;
        }
    
        //提供全局访问点
        public static synchronized Object resultError(String msg){
            map.clear();
    
            map.put("status","ok");
            map.put("data",null);
            map.put("msg",msg);
    
            return map;
        }
    
    }

    我们尝试这调用

        public static void main(String[] args) {
            System.out.println(JsonObject.resultError("密码不能为空"));
            System.out.println(JsonObject.resultOk("192.168.0.1"));
        }

    这样就完成了一个饿汉式(常用)的一种单例模式

  • 相关阅读:
    设计师必须掌握的美术基础
    UI设计初学者如何避免走弯路?
    2018年最好的医疗网站设计及配色赏析
    一名优秀的UI设计师应该具备哪些条件?
    超实用的网页页脚设计小技巧
    关于文案排版的一些基本技巧
    几个简单又实用的配色技巧
    412. Fizz Buzz
    409. Longest Palindrome
    408. Valid Word Abbreviation
  • 原文地址:https://www.cnblogs.com/ChromeT/p/11695480.html
Copyright © 2011-2022 走看看