构建器模式

构建器模式就不详细说了,它就是说在类的内部写一个静态内部类,可以方便的构建类并选择性的设置类的属性,不需要繁杂的setter与getter。在各种项目源码里随处可见,如zipKin的Brave类中有个静态类:

public static class Builder {
    private final ServerClientAndLocalSpanState state;
    private SpanCollector spanCollector;
    private Random random;
    private Sampler sampler;

    public Builder() {
        this("unknown");
    }

    public Builder(String serviceName) {
        this.spanCollector = new LoggingSpanCollector();
        this.random = new Random();
        this.sampler = Sampler.create(1.0F);

        try {
            int ip = InetAddressUtilities.toInt(InetAddressUtilities.getLocalHostLANAddress());
            this.state = new ThreadLocalServerClientAndLocalSpanState(ip, 0, serviceName);
        } catch (UnknownHostException var3) {
            throw new IllegalStateException("Unable to get Inet address", var3);
        }
    }

    public Brave.Builder traceSampler(Sampler sampler) {
        this.sampler = sampler;
        return this;
    }

    public Brave.Builder spanCollector(SpanCollector spanCollector) {
        this.spanCollector = spanCollector;
        return this;
    }

    public Brave build() {
        return new Brave(this);
    }
}

这样在使用的时候就可以按照需求构建对象了:

Brave.Builder builder = new Brave.Builder(properties.getServiceName());  
builder.spanCollector(spanCollector);
builder.traceSampler(Sampler.ALWAYS_SAMPLE);
Brave brave = builder.build();



还有常见的像OkHttp3中也大量使用了构建器,像Request、Response、Client等,我们可以按需要的属性构建client或者为client添加属性:

OkHttpClient client = new OkHttpClient.Builder()
            .addInterceptor(new BraveOkHttpRequestResponseInterceptor(brave.clientRequestInterceptor())
            .build();
    return client;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,228评论 19 139
  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,575评论 9 118
  • 非常感谢鬼谷流沙的总设计师【鱼时七】,将鬼谷的建设工程推到了一个全新的高度,辛苦啦! 小七才女不仅仅会画,而且能写...
    三水林枫阅读 2,187评论 18 8
  • 时下正是杏子黄熟时节,看着满树橙黄的杏子,在绿叶的衬托下显得更加鲜艳剔透,不经意望一眼,忍不住流口水的记忆,...
    沐源工作室阅读 4,529评论 11 9

友情链接更多精彩内容