Exemple de modèle de conception de générateur Java
Un exemple Javabuilder patterncomplet.
Student.java
package com.example.model;
import java.util.List;
public class Student {
private String name;
private int age;
private List language;
public static class Builder {
private String name;
private int age;
private List language;
public Builder name(String name) {
this.name = name;
return this;
}
public Builder age(int age) {
this.age = age;
return this;
}
public Builder language(List language) {
this.language = language;
return this;
}
public Student build() {
return new Student(this);
}
}
private Student(Builder builder) {
name = builder.name;
age = builder.age;
language = builder.language;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", language=" + language +
'}';
}
}
Exemple d'utilisation du modèle de générateur ci-dessus pour créer un objet Student.
package com.example.model;
import java.util.Arrays;
public class TestStudent {
public static void main(String[] args) {
Student s = new Student.Builder()
.name("example")
.age(18)
.language(Arrays.asList("chinese","english"))
.build();
//Student{name='example', age=18, language=[chinese, english]}
System.out.println(s);
// Classic way to create an object
/*
Student s = new Student();
s.setName("example");
s.setAge(18);
s.setLanguage(Arrays.asList("chinese","english"));
*/
}
}