JAVA设计模式------建造者模式(Builder模式)
2017-06-13 00:00
344 查看
摘要: 建造者模式/Builder模式-----解决构建复杂对象多步初始化和赋值的复杂程度;
如果一个类的属性有很多,那么为了满足不同的需要,我们需要写很多的构造函数,或者是对最复杂的构造函数赋初始化的值;例如:有一个类MulpitleParamClass(多参数的类)
1:如果我们要构造一个这样的类需要写许多的构造函数,这个工作可以借助编辑器完成;但是如果参数太多,如果超过100个就不太好办了.......构造函数会有2∧参数个数的构造函数
2:在很多的情况下,我们不太好选择使用哪个构造函数去构造这个类,最起码是比较麻烦的;
所以在类属性比较多的情况下,使用类的构造器构造就会失去灵活性;在类的属性比较多的情况下,可以使用构造器模式来进行构造类对象;如下:
在参数较多的情况下,使用Builder模式可以这样操作,这种情况下我们保证了构造复杂属性的类的灵活性 ;
如果一个类的属性有很多,那么为了满足不同的需要,我们需要写很多的构造函数,或者是对最复杂的构造函数赋初始化的值;例如:有一个类MulpitleParamClass(多参数的类)
public class MulpitleParamClass { /*参数*/ private int id; private String name; private int age; //......参数省略不写...... /*构造函数*/ public MulpitleParamClass(int id) { this.id = id; } //......构造函数省略不写...... public MulpitleParamClass(int id, String name, int age) { this.id = id; this.name = name; this.age = age; } }
1:如果我们要构造一个这样的类需要写许多的构造函数,这个工作可以借助编辑器完成;但是如果参数太多,如果超过100个就不太好办了.......构造函数会有2∧参数个数的构造函数
2:在很多的情况下,我们不太好选择使用哪个构造函数去构造这个类,最起码是比较麻烦的;
所以在类属性比较多的情况下,使用类的构造器构造就会失去灵活性;在类的属性比较多的情况下,可以使用构造器模式来进行构造类对象;如下:
public class UseBuilderForMupitleParamClass { /*参数*/ private int id; private String name; private int age; //......参数省略不写...... public int getId() { return id; } public String getName() { return name; } public int getAge() { return age; } public UseBuilderForMupitleParamClass(Builder bulider) { id = bulider.id; name = bulider.name; age = bulider.age; } public static final class Builder { private int id; private String name; private int age; public Builder setId(int id) { this.id = id; return this; } public Builder setName(String name) { this.name = name; return this; } public Builder setAge(int age) { this.age = age; return this; } public UseBuilderForMupitleParamClass build() { return new UseBuilderForMupitleParamClass(this); } } }
在参数较多的情况下,使用Builder模式可以这样操作,这种情况下我们保证了构造复杂属性的类的灵活性 ;
public static void main(String[] args) { UseBuilderForMupitleParamClass.Builder builder = new UseBuilderForMupitleParamClass.Builder(); builder.setAge(1); builder.setId(1); builder.setName("周星星"); UseBuilderForMupitleParamClass build = builder.build(); System.out.println(build.toString()); } 打印: UseBuilderForMupitleParamClass{id=1, name='周星星', age=1}
相关文章推荐
- java设计模式——建造者模式(Builder)
- Java设计模式----建造者模式(Builder)
- java设计模式(五)--建造者模式(Builder)
- Java设计模式--------建造者模式(Builder模式)
- java设计模式4——建造者模式(Builder)
- 【创建型模式】建造者模式(Builder)之23种java设计模式
- java设计模式——建造者模式(Builder)
- Java 设计模式-建造者模式(Builder)Android讲解
- java设计模式——建造者模式(Builder Pattern)
- Java设计模式-建造者模式(Builder)
- 设计模式之—建造者模式(Builder)-Java实现
- 设计模式:Java 建造者模式(Builder)
- java-设计模式-创建模式-建造者模式builder
- 设计模式(三)----- 建造者模式(Builder)----(JAVA版)
- java 23种设计模式--建造者模式(builder)
- Java设计模式----建造者模式(Builder)
- java设计模式4--建造者模式(Builder)
- java设计模式(五)--建造者模式(Builder)
- java中的设计模式-builder(建造者模式)
- JAVA--建造者模式(Builder)--设计模式四