【图解设计模式系列】The Builder Pattern: 建造者模式

创建者模式使用多个简单的对象一步一步构建成一个复杂的对象。它提供了一种创建对象的最佳方式。一个 Builder 类会一步一步构造最终的对象,该 Builder 类是独立于其他对象的。

通过描述我们就能才出来一个大概:我们想构造一个比较复杂的对象的话 就需要用到这种模式,比如说我们用RestAPI 返回的那些被封装的复杂对象。就是用到这种模式。

在这里插入图片描述
创建者模式包括以下几种角色:

  • Builder:为创建一个Product对象的各个部件指定抽象接口。
  • ConcreteBuilder:实现Builder的接口以构造和装配该产品的各个部件。定义并明确它所创建的表示。提供一个获取产品的接口。
  • Director:构造一个使用Builder接口的对象。
  • Product:表示被构造的复杂对象。ConcreteBuilder创建该产品的内部表示并定义它的装配过程。包含定义组成部件的类,包括将这些部件装配成最终产品的接口。

实例

在当前前后端分离已经成为主流开发模式的情况下,Rest API是经常使用到的。在向前段提供Rest接口时,可以对返回结果进行封装,这里就可以用到创建者模式。

代码

/**
 * REST API返回类
 */
public class RestAPIResponse<T> {

    // 返回码
    private String code;
    // 返回状态,成功或失败
    private String message;
    // 数据
    private T data;

    // getter/setter

}

创建返回对象的创建者

public class RestAPIResponseBuilder {

    /**
     * 成功返回,带数据
     */
    public static <T> RestAPIResponse buildSuccessResponse(T data) {
        RestAPIResponse response = new RestAPIResponse();
        response.setCode("200");
        response.setMessage("success");
        response.setData(data);
        return response;
    }

    /**
     * 失败返回,不带数据
     */
    public static RestAPIResponse buildFailureResponse(String message) {
        RestAPIResponse response = new RestAPIResponse();
        response.setCode("404");
        response.setMessage(message);
        response.setData(null);
        return response;
    }

}

客户端public class Client {

    public static void main(String[] args) {
        /*********************没有加返回接收******************/
        //返回成功
        RestAPIResponse response = RestAPIResponseBuilder.buildSuccessResponse("数据");
        System.out.println(response.getCode() + "|" + response.getMessage() + "|" + response.getData());

        //返回失败
        RestAPIResponse response2 = RestAPIResponseBuilder.buildFailureResponse("错误信息");
        System.out.println(response2.getCode() + "|" + response2.getMessage() + "|" + response2.getData());
    }

}
posted @ 2020-12-29 05:15  EvanMeetTheWorld  阅读(30)  评论(0)    收藏  举报