第7回目 Builderパターン
概要
Builder パターンは、同じ作成過程で異なる表現形式の結果を得るためのパターンです。
サンプル
Director.java
public class Director {
private Builder builder;
public Director(Builder builder) {
this.builder = builder;
}
public void construct() {
builder.setName(“YamadaTaro");
builder.setAge(18);
}
}
Builder.java
interface Builder {
public abstract void setName(String name);
public abstract void setAge(int age);
public abstract People getResult();
}
PeopleBuilder.java
public class PeopleBuilder implements Builder {
private People people = new People();
public void setName(String name) {
people.setName(name);
}
public void setAge(int age) {
people.setAge(age);
}
public People getResult() {
return people;
}
}
People.java
public class People {
private String name;
private int age;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
}
Main.java
public class Main {
public static void main(String[] args){
Builder builder = new PeopleBuilder();
Director director = new Director(builder);
director.construct();
People people = director.getResult();
System.out.println(people.getName());
System.out.println(people.getAge());
}
}
結果
Yamada
18