Il est recommandé d'utiliser ce modèle lorsqu'une classe possède un grand nombre de paramètres du même type et qu'il est difficile de se souvenir de leur ordre et de leur objectif.
public class Good{
public final int a;
public final int b;
public final int c;
public final int d;
public final int e;
public final int f;
//Реализация Builder через статический внутренний класс
public static class Builder{
//Обязательные параметры
public int a;
public int b;
//Необязательные параметры со значениями по умолчанию
public int c = 0;
public int d = 0;
public int e = 0;
public int f = 0;
//Конструктор с обязательными параметрами
public Builder(int a, int b){
this.a=a;
this.b=b;
}
//Методы с возвращающим типом Builder для необязательного параметра с, d, e, f,
public Builder c (int val) {
c = val;
return this;
}
public Builder d (int val) {
d = val;
return this;
}
public Builder e (int val) {
e = val;
return this;
}
public Builder f (int val) {
f = val;
return this;
}
//Метод с возвращающим типом Good для генерации an object
public Good buidl() {
return new Good (this); }
private Good(Builder builder) {
a = builder.a;
b = builder.b;
c = builder.c;
d = builder.d;
e = builder.e;
f = builder.f; }
Désormais, dans la méthode, main
lors de la création d'un objet, le constructeur de la classe statique Builder
avec les paramètres requis est appelé. Ensuite, tous les paramètres facultatifs nécessaires sont appelés via le point. Enfin, une méthode est appelée buidl();
pour générer l’objet.
Good good = new Good.Builder(40, 20)
.c(2)
.d(4)
.e(23)
.f(9)
.buidl();
Si je veux créer un objet avec deux paramètres obligatoires et un facultatif, il ressemblera à ceci :
Good good = new Good.Builder(40, 20)
.c(2)
.buidl();
Si je veux créer un objet avec seulement deux paramètres obligatoires, cela ressemble à ceci :
Good good = new Good.Builder(40, 20)
.buidl();
GO TO FULL VERSION