设计模式--单例模式之饿汉式

Posted boychen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式--单例模式之饿汉式相关的知识,希望对你有一定的参考价值。

1.概念:

单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。

这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

 

2.特点:

  • 1、单例类只能有一个实例。
  • 2、单例类必须自己创建自己的唯一实例。
  • 3、单例类必须给所有其他对象提供这一实例

 

3.使用场景:在返回消息给客户端的时候,我们会统一返回的格式

 

4.实现

步骤1.创建一个 ResponseResult类。

public class ResponseResult{

    private static ResponseResult instance = new ResponseResult();

    //为了保证只有一个实例   构造方法无做任何操作
    private ResponseResult(){}

    public static ResponseResult getInstance(){
        return instance;
    }

    //返回给客户端的数据说明
    private String msg;

    //如果操作成功,返回的数据
    private Object data;

    //返回的编码  0:表示操作成功  1:表示失败
    private int code;

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public Object getData() {
        return data;
    }

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

    public int getCode() {
        return code;
    }

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


    @Override
    public String toString() {
        return "ResponseResult{" +
                "msg=‘" + msg + ‘\‘‘ +
                ", data=" + data +
                ", code=" + code +
                ‘}‘;
    }
}

步骤2从 ResponseResult 类获取唯一的对象。 

public class Main {

    public static void main(String[] args) {

        ResponseResult responseResult = ResponseResult.getInstance();

        responseResult.setCode(0);
        responseResult.setMsg("操作成功");
        responseResult.setData("这里是存放,请求的数据");

        System.out.println(responseResult.toString());
    }

}

 

源码:

https://github.com/littleStone-chan/design-patternsIn-mall/tree/master/single

 

 

在工作中,不能灵活的时候设计模式。希望通过这次的学习,可以加深对设计模式对理解。

接下来会继续整理出自己在工作对时候可以使用对设计模式,不对望指点。如果文章对您有帮助,github给个start吧。

 

 

以上是关于设计模式--单例模式之饿汉式的主要内容,如果未能解决你的问题,请参考以下文章

单例模式之饿汉式

设计模式--单例模式之饿汉式

单例设计模式 (代码实现)

java===单类设计模式之饿汉式与懒汉式

单例模式之饿汉方式实现与静态内部类实现的区别

java小白 初学单例模式之饿汉模式(望各位大佬多多指点)