美文网首页
为什么要用建造者模式

为什么要用建造者模式

作者: 望北8261 | 来源:发表于2022-07-03 01:03 被阅读0次

写在前面

一直不喜欢复杂繁琐的东西,建造者模式就是一个很繁琐的模式,要写一堆代码。更不喜欢那些经验很丰富的人跟我说:这个模式好,你要用起来。但是他们自己说不出哪里好。

使用建造者模式的样子

OkHttp里面用了超级多的建造者模式,这里摘取了一小段,删除了大部分,只留我需要用来说明问题的那一部分。

class OkHttpClient(
  builder: Builder
) {

  val readTimeoutMillis: Int = builder.readTimeout

  val writeTimeoutMillis: Int = builder.writeTimeout

  class Builder constructor() {
    internal var readTimeout = 10_000
    internal var writeTimeout = 10_000

    fun readTimeout(duration: Duration) = apply {
      readTimeout = checkDuration("timeout", duration.toMillis(), TimeUnit.MILLISECONDS)
    }

    fun writeTimeout(duration: Duration) = apply {
      writeTimeout = checkDuration("timeout", duration.toMillis(), TimeUnit.MILLISECONDS)
    }

    fun build(): OkHttpClient = OkHttpClient(this)
  }
}

这个OkHttpClient类只有一个builder真正的成员变量,其它的比如readTimeoutMillis其实只是用了builder里面的成员变量。使用如下:

val client = OkHttpClient.Builder()
    .readTimeout(Duration.ofSeconds(20))
    .writeTimeout(Duration.ofSeconds(20))
    .build()

不用构造者模式的样子

class OkHttpClient(
    val readTimeoutMillis: Int = 10000,
    val writeTimeoutMillis: Int = 10000,
)

直接把Builder里面的参数写成OkHttpClient的参数,这不是更加简单么,效果不是一样的吗?使用如下:

val client = OkHttpClient(
    readTimeoutMillis = 20000,
    writeTimeoutMillis = 20000,
)

为什么要用建造者模式?不懂。

相关文章

  • 建造者模式:深入理解建造者模式 ——组装复杂的实例

    目录: 一 建造者模式介绍 1.1 定义 1.2 为什么要用建造者模式(优点)? 1.3 哪些情况不要用建造者模式...

  • 89 - MyBatis框架中用到的设计模式

    1. SqlSessionFactoryBuilder:为什么要用建造者模式来创建 SqlSessionFacto...

  • 为什么要用建造者模式

    写在前面 一直不喜欢复杂繁琐的东西,建造者模式就是一个很繁琐的模式,要写一堆代码。更不喜欢那些经验很丰富的人跟我说...

  • Builder pattern

    Builder pattern 这里所介绍的建造者模式不是GOF中介绍的建造者模式。GOF中的建造者模式主要用于抽...

  • Builder Pattern in Java

    建造者模式:建造者模式定义建造者模式应用场景实现案例Jdk中的建造者模式建造者模式的优点建造者模式的缺点 建造者模...

  • 设计模式(4) 建造者模式

    什么是建造者模式 经典建造者模式的优缺点 对建造者模式的扩展 什么是建造者模式 建造者模式将一个复杂的对象的构建与...

  • 建造者模式(部件构造)

    目录 建造者模式的理念 从 POJO 到建造者模式的思考 怎么来实现建造者模式 建造者模式在Android源码中的...

  • 创建型模式

    创建型模式(Creational Pattern)主要用于处理对象的创建问题,包括: 单例模式 工厂模式 建造者模...

  • 【设计模式】之建造者Builder模式

    建造者模式 什么是建造者模式? 建造者模式属于创建型模式的一员,可以控制对象的实例化过程。建造者模式简化了复杂对象...

  • 建造者模式

    一、建造者模式介绍 二、建造者模式代码实例

网友评论

      本文标题:为什么要用建造者模式

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