美文网首页
Java Builder模式

Java Builder模式

作者: 潜意识_ | 来源:发表于2020-07-09 16:56 被阅读0次

Builder模式的作用是将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它可以不直接生成想要的对象。然后客户端使用者在builder对象上调用类似于setter的方法,来设置每个相关的可选参数。最后,使用者调用无参的build方法来生成不可变的对象。这个builder是它构建类的静态类。示例:

class Person {
  private int id;
  private String name;
  private int age;
  private double weight;
  private int score;
  private Location loc;
  private Person() {
  }
  
  public static class PersonBuilder {
     private Person p  = new Person();
     public PersonBuilder baseInfo(int id,int age,String name){
            p.id = id;
            p.age = age;
            p.name = name;
            return this;
        }

        public PersonBuilder weight(double weight){
            p.weight = weight;
            return this;
        }

        public PersonBuilder score(int score){
            p.score = score;
            return this;
        }

        public PersonBuilder loc(String street,String roomNo){
            p.loc = new Location(street,roomNo);
            return this;
        }

        public Person build(){
            return p;
        }
  }
}
class Location {
  String street;
  String roomNo;
  public Location(String street,String roomNo) {
    this.street = street;
    this.roomNo = roomNo;
  }
}

class Test {
  public static void main(String[] args) {
    Person p = new Person.PersonBuilder()
                          .baseInfo(10,20,"Tom")
                          .weight(60.0)
                          .loc("南一道","25")
                          .build();
  }
}

注意Person是不可变的,所有的默认参数值都单独放在一个地方。builder的setter方法返回builder本身,以便可以把调用链接起来。如上面代码所示,这样客户端的代码就很容易编写而且易于阅读。

相关文章

  • 11.2设计模式-构建者模式-详解

    构建者模式 java的builder模式详解 builder模式在android中的实际运用 1.java的bui...

  • Java设计模式教程

    Java设计模式教程 Java工厂设计模式 Java抽象工厂模式 Java单例模式 Java建造者(Builder...

  • Java builder 模式

    Java builder 模式 在Java builder模型中有两个实体对象: 实体对象 实体对象对应的Buil...

  • Java设计模式之03_Builder(建造者模式)

    更多Java设计模式:Java设计模式-目录 建造者模式(Builder Pattern)使用多个简单的对象一步一...

  • Java Builder模式

    Builder模式的作用是将一个复杂的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。它可以不直接生成想...

  • Java Builder模式

    当构造函数只有一两个参数的时候,一切都很顺利,但超过三个参数以后还使用构造函数来初始化就有些弊端,尤其是参数类型相...

  • Java设计模式之builder模式

    Java设计模式之builder模式 今天学mybatis的时候,知道了SQLSessionFactory使用的是...

  • 设计模式:Builder

    Builder模式基本介绍Builder模式的实现源码中的Builder模式记录 Builder模式基本介绍 Bu...

  • Java设计模式--Java Builder模式

    原文:原文 1、Java Builder模式主要是用一个内部类去实例化一个对象,避免一个类出现过多构造函数,而且构...

  • Java 设计模式Builder模式

    Dog类 测试类 运行结果

网友评论

      本文标题:Java Builder模式

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