springboot 响应消息 message简单封装 单例和原型模式

直接上代码:

1、定义静态方法

import com.alibaba.fastjson.JSON;

public class MessageUtils implements Cloneable {
    private static final MessageUtils instance = new MessageUtils();  // 单例模式

    public MessageUtils clone() {
        try {
            return (MessageUtils) super.clone();
        } catch (Exception e) {
            return new MessageUtils();
        }
    }

    // 初始化方法
    public static MessageUtils newMessage() {
        return instance.clone();  // 原型模式
    }

    private String code;
    private boolean success;
    private String message;
    private Object data;

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public static String error510() {
        return fullMessage("510", false, "无此权限", null);
    }

    public static String error508() {
        return fullMessage("508", false, "系统异常,请稍后再试", null);
    }

    public static String error200(String message) {
        return fullMessage("200", false, message, null);
    }

    public static String ok200() {
        return ok200(null);
    }

    public static String ok200(String message) {
        return ok200(message, null);
    }

    public static String ok200(String message, Object data) {
        return fullMessage("200", true, message, data);
    }

    public static String ok200(Object data) {
        return fullMessage("200", true, "OK", data);
    }

    // 完整方法
    public static String fullMessage(String code, boolean success, String message, Object data) {
        MessageUtils msg = instance.clone();
        msg.setCode(code);
        msg.setSuccess(success);
        msg.setMessage(message);
        msg.setData(data);
        return JSON.toJSONString(msg);
    }
}

2、使用方法:

return MessageUtils.ok200();
return MessageUtils.error200("账号不存在");
return MessageUtils.ok200(Object);
等等...

原文地址:https://www.cnblogs.com/SamNicole1809/p/12610625.html

时间: 2024-11-05 12:10:36

springboot 响应消息 message简单封装 单例和原型模式的相关文章

单例和原型模式-创建型

单例模式 确保一个特殊类的实例是独一无二的(它是这个类的唯一实例),并且这个实例易于被访问. 解决方案 1)全局变量:一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象.因为你的任何代码都能修改全局变量,这将不可避免的引起更多调试的意外.换句话说,全局变量的状态总是会出现一些问题的. 2)类构造函数私有和类自身的静态方法:让类自身负责保存它的唯一实例(静态变量).这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求) ,并且它可以提供一个访问该实例的方法(静态方法).这就

简单的单例类和智能指针

1.一个简单的单例类: class Singleton { public: static Singleton *getInstance() { if(pInstance_ == NULL){ mutex_.lock(); if(pInstance_ == NULL){ sleep(1); pInstance_ = new Singleton; } mutex_.unlock(); } return pInstance_; } private: Singleton(){} static Singl

Swift百万线程攻破单例(Singleton)模式

一.不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法.单例的实现有多种方法,如下面: class SwiftSingleton { class var shared: SwiftSingleton { if !Inner.instance { Inner.instance = SwiftSingleton() } return Inner.instance! } struct Inner { static var instance: SwiftSingleto

单例和工厂模式的创建

#pragma once class Config { private: static Config * con; Config(void); Config(const Config & con);//拷贝构造置为私有 public: float cpu; float memory; float harddisk; ~Config(void); //注意声明有static 静态. static Config * getInstance(); void creatInstance(); //工厂模

使用java实现阿里云消息队列简单封装

一.前言 最近公司有使用阿里云消息队列的需求,为了更加方便使用,本人用了几天时间将消息队列封装成api调用方式以方便内部系统的调用,现在已经完成,特此记录其中过程和使用到的相关技术,与君共勉. 现在阿里云提供了两种消息服务:mns服务和ons服务,其中我认为mns是简化版的ons,而且mns的消息消费需要自定义轮询策略的,相比之下,ons的发布与订阅模式功能更加强大(比如相对于mns,ons提供了消息追踪.日志.监控等功能),其api使用起来更加方便,而且听闻阿里内部以后不再对mns进行新的开发

深入谈谈Java最简单的单例设计模式

单例设计模式是23种设计模式里面最简单的,但是要彻底理解单例,还是需要下一点功夫的. 单例一般会分为饿汉模式和懒汉模式 饿汉模式: 1 public class Singleton 2 { 3 private static Singleton singleton = new Singleton(); 4 5 public static Singleton getInstance() 6 { 7 return singleton; 8 } 9 } 但是在一些系统应用环境中,这个单例对象可能比较大,

erlang与设计模式(一)——概述、单例、原型

Russell-X-Shanso 大家好,我是狼夜行(嫌不好记叫我哈士奇也成).仅以此系列随笔跟大家来讨论一下erlang和设计模式. 本文背景: (1)设计模式在面向对象语言编程中广泛受到关注: (2)对于非面向对象语言而言,各领域的朋友也有总结一些设计模式,整体受众及受关注度不大: (3)国内erlang圈不大,玩票的游击队朋友较多,新手引导少: 本文目标: (1)按面向对象中设计模式的套路生搬硬套过来,借用erlang的形式向erlang为主要语言的朋友们进行介绍,希望对两者更熟悉的朋友能

设计模式理解(二)创建型——单例、原型

设计模式理解(二)单例(Singleton)与原型(Prototype) 为什么一起写,因为懒.... 单例,就是用了面向对象语言的一些奇技淫巧,把构造函数私有了,然后用一个自身类型的静态指针作为全局唯一的实例的引用.碰到并发之类就呵呵了. 这么简单都能画个UML图,还煞有介事似的,我晕. -----------------------   分割线   ------------------------ 原型(Prototype) 我理解就是给一个类糊弄个cloneable之类的接口,让它自己决定

Struts2和SpringMVC的action是单例还是原型的?

struts2的acion单独使用的时候应是多例的,也就是原型(prototype). 因为它是基于类开发的,它的三种获取页面传参的方式都是通过成员变量的方式来接受的. 如果用struts2框架基于方法的形式进行开发(一个方法对应一个请求处理的话),那么意味着这多个方法都可以共享成员变量.这时候,那么就可能会出现并发问题:不同的请求对同一个实例中的成员变量一起操作,出现数据安全问题.比如前一个人的密码可能被后面的人看到,提交的数据被修改等. 这就是为什么struts2为什么是多例的原因. 值得注