Pola ini direkomendasikan untuk digunakan ketika suatu kelas memiliki sejumlah besar parameter dengan tipe yang sama dan sulit untuk mengingat urutan dan tujuannya.
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; }
Sekarang dalam metode ini, main
saat membuat objek, konstruktor kelas statis Builder
dengan parameter yang diperlukan dipanggil. Kemudian semua parameter opsional yang diperlukan dipanggil melalui titik. Terakhir, sebuah metode dipanggil buidl();
untuk menghasilkan objek.
Good good = new Good.Builder(40, 20)
.c(2)
.d(4)
.e(23)
.f(9)
.buidl();
Jika saya ingin membuat objek dengan dua parameter wajib dan satu parameter opsional, tampilannya akan seperti ini:
Good good = new Good.Builder(40, 20)
.c(2)
.buidl();
Jika saya ingin membuat objek dengan hanya dua parameter yang diperlukan, tampilannya seperti ini:
Good good = new Good.Builder(40, 20)
.buidl();
GO TO FULL VERSION