美文网首页
构建器模式

构建器模式

作者: 柚子过来 | 来源:发表于2018-02-23 11:58 被阅读0次

构建器模式就不详细说了,它就是说在类的内部写一个静态内部类,可以方便的构建类并选择性的设置类的属性,不需要繁杂的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;

相关文章

  • 建造者模式(Builder Pattern)

    Builder模式,建造者模式,构建器模式,生成器模式 意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过...

  • 构建器模式

    构建器模式就不详细说了,它就是说在类的内部写一个静态内部类,可以方便的构建类并选择性的设置类的属性,不需要繁杂的s...

  • 构建器模式

    1. 概念 建造者模式(Builder Pattern) 又名生成器模式,是一种对象构建模式。它可以将复杂对象的建...

  • kotlin<第八篇>:协程的启动与取消

    一、启动构建器 launch与async构建器都用来启动新协程: 等待一个作业: 二、启动模式 三、作用域构建器 ...

  • 创建型模式:06-建造者模式

    类图 示例代码: 特殊建造者模式(构建器)

  • spring框架中的设计模式一

    Spring框架中使用的4种设计模式:解释器,构建器,工厂方法和抽象工厂。 解释器设计模式 此模式基于表达式和评估...

  • (学习记录)Android源码设计模式解析与实战——第三章总结

    Builder建造者模式 Buider模式是一个创建型模式,用来构建复杂对象的。构建对象一般是通过构造器完成的,但...

  • 72 - 解释器模式详解

    解释器模式,它用来描述如何构建一个简单的“语言”解释器。比起命令模式,解释器模式更加小众,在一些特定的领域会被用到...

  • 设计模式之构建器模式

    意图:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。构建器模式主要用于“分步骤构建一个...

  • Java应用小实例总结

    1.1 建造者模式 【静态内部类的引用------Builder构建器】 《 publicstaticclass...

网友评论

      本文标题:构建器模式

      本文链接:https://www.haomeiwen.com/subject/cgtxxftx.html