一、定义
建造者模式也称生成器模式,创建一个复杂对象的创建型模式,将其构建复杂对象的过程和它的部件解耦,使构建过程和部件的分离开,使得构建过程和部件都可以自由拓展,两者之间的耦合降到最低。
二、简单示例
public class BuilderMode {
//创建实体类
private String mName;
private String mAge;
private BuilderMode(String name, String age) {
mName = name;
mAge = age;
}
public String getName() {
return mName;
}
public String getAge() {
return mAge;
}
//创建builder
public static class Builder {
private String name;
private String age;
public Builder setName(String name) {
this.name = name;
return this;
}
public Builder setAge(String age) {
this.age = age;
return this;
}
public BuilderMode build() {
return new BuilderMode(name, age);
}
}
}
//进行创建调用
BuilderMode builder = new BuilderMode.Builder().setName("xxx").setAge("xx").build();
String age = builder.getAge();
String name = builder.getName();
Log.e("TAG", "name:" + name + "-age:" + age);
三、使用场景
- 当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。
- 相同的方法,不同的执行顺序,产生不同的事件结果时。
- 多个部件或零件都可以被装配到一个对象中,但是产生的运行结果又不相同时。
- 产品类非常复杂,或者产品类中的调用顺序不同而产生了不同的效能。
- 在创建一些复杂的对象时,这些对象的内部组成构件间的建造顺序是稳定的,但是
对象的内部组成构件面临着复杂的变化。
四、优缺点
优点
- 使用建造者模式可以使客户端不必知道产品内部组成的细节。
- 具体的建造者类之间是相互独立的,容易扩展。
- 由于具体的建造者是独立的,因此可以对建造过程逐步细化,而不对其他的模块产
生任何影响。
缺点
- 产生多余的 Build 对象
网友评论