Builder 构造者模式

1 prelude

最为 Java,基于类。

类,只是一种模板。它描述了,你要创建什么样的数据。

var ren_tou = "ksdjfk ,, ksajdfksk";
var ren_jiao = ksdjfk;
var ren_nainling = 32;

function aaa () {
}

function bbb() {
   ...
   aaa()-
   ....
}

function ccc() {
   ...
   bbb()-
   aaa()
   ....
}

ccc();

2 什么是构建者模式

3 使用示例

为 RESTful 的返回结果构建一个返回结果对象,它封装了返回的数据、分页数据、错误信息等。

它的 class 大致如下:

public class Result<T> {
    private int code;
    private T data;
    private Page<T> pager;

    private String errMsg;
    private List<ErrorDetail> errors;

    private long dataTimestamp;

    /** getters/setters **/
}
class ErrorDetail {
    private String type;
    private String message;
    private int code;

    /** getters/setters **/
}

为了简化 Result<T> 的使用,请使用某种手段对其封装,使得下面调用可行:

// 下面只是示例 API
// 实际运用请酌情自行设计、封装

// 1. 最简单的情况,返回正常数据
return Result.ok("hello");
return Result.status(203).data("hello");

// 2. 添加分页信息
return Result.ok("hello", pager);
return Result.status(202).data("world");
return Result.status(202).data("world", pager);

// 3. 返回非正常数据
return Result.err(400, "数据错误");
return Result.status(400).err("数据错误");

// 4. 可以添加更多错误信息
return Result
    .addError("参数不能为空")
    .addError("参数类型不对")
    .err(411, "验证参数错误");

4 运用场景

5 优点缺点分析

Author: unname

Created: 2019-03-22 周五 01:32

Go ahead, never stop.