美文网首页
builder 构造器模式的思考

builder 构造器模式的思考

作者: 光小月 | 来源:发表于2019-10-24 22:19 被阅读0次
  1. 首先为什么会有这种模式?
  2. 这种模式的好处在于什么地方?
  3. 这种模式的特点是什么?

对比多参数的构造函数,builder构造函数少了层层嵌套、设置参数默认值、对于增删参数,无需一层层修改。

对于与工厂模式,工厂模式只是封装出具体的工厂方法,本质还是重载构造函数。

对比与JavaBean模式,set方法破坏了Bean的完整性,使得程序可以随意修改内容。

Builder 模式例子

public class Configuration {
  private String username;
  private String password;
  private String url;

  public Configuration(String username, String password, String url) {
    this.username = username;
    this.password = password;
    this.url = url;
  }

  public static ConfigurationBuilder builder() {
    return new ConfigurationBuilder();
  }

  public static class ConfigurationBuilder {
    private String username;
    private String password;
    private String url;

    ConfigurationBuilder() {
    }

    public ConfigurationBuilder username(String username) {
      this.username = username;
      return this;
    }

    public ConfigurationBuilder password(String password) {
      this.password = password;
      return this;
    }

    public ConfigurationBuilder url(String url) {
      this.url = url;
      return this;
    }

    public Configuration build() {
      // can some check
      return new Configuration(this.username, this.password, this.url);
    }

    public String toString() {
      return new StringBuilder().append((String)"Configuration.ConfigurationBuilder(username=").append((String)this.username).append((String)", password=").append((String)this.password).append((String)", url=").append((String)this.url).append((String)")").toString();
    }
  }
}

设计模式--Builder模式的思考

PS: 若你觉得可以、还行、过得去、甚至不太差的话,可以“关注”一下,就此谢过!

相关文章

网友评论

      本文标题:builder 构造器模式的思考

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