第一篇建造者模式主要讲了怎样自己怎样在一个构造方法里面创建一个建造者方法,第二篇通过静态内部类来创建一个建造者,这样有利于优化代码,在lombok里面可以直接采用注解的方式将一个实体类转换成建造者模式,采用@Builder注解,不需要我们来手写这些基本代码 public class BuilderTest2 { public static void main(String[] args) { Product build = new Product.Builder().companyName("xxx").part1("part1").build(); System.out.println(build); } } class Product{ private final String productName; private final String companyName; private final String part1; private final String part2; private final String part3; private final String part4; public Product(String productName, String companyName, String part1, String part2, String part3, String part4) { this.productName = productName; this.companyName = companyName; this.part1 = part1; this.part2 = part2; this.part3 = part3; this.part4 = part4; } static class Builder { private String productName; private String companyName; private String part1; private String part2; private String part3; private String part4; public Builder productName(String productName){ this.productName = productName; return this; } public Builder companyName(String companyName){ this.companyName = companyName; return this; } public Builder part1(String part1){ this.part1 = part1; return this; } public Builder part2(String part2){ this.part2 = part2; return this; } public Builder part3(String part3){ this.part3 = part3; return this; } public Builder part4(String part4){ this.part4 = part4; return this; } Product build(){ //可以写一些校验 return new Product(this.productName, this.companyName, this.part1, this.part2, this.part3, this.part4); } } @Override public String toString() { return "Product{" + "productName='" + productName + '\'' + ", companyName='" + companyName + '\'' + ", part1='" + part1 + '\'' + ", part2='" + part2 + '\'' + ", part3='" + part3 + '\'' + ", part4='" + part4 + '\'' + '}'; } }
设计模式第六篇---建造者模式
最新推荐文章于 2024-07-22 14:15:06 发布