JavaRush /Blog Java /Random-VI /Trình tạo mẫu
Нина Можарская
Mức độ
Киев

Trình tạo mẫu

Xuất bản trong nhóm
Mẫu này được khuyến khích sử dụng khi một lớp có số lượng lớn các tham số cùng loại và khó nhớ thứ tự cũng như mục đích của chúng.
Trình tạo mẫu - 1
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;     }
Bây giờ trong phương thức, mainkhi tạo một đối tượng, hàm tạo của lớp tĩnh Buildervới các tham số bắt buộc sẽ được gọi. Sau đó tất cả các tham số tùy chọn cần thiết sẽ được gọi thông qua dấu chấm. Cuối cùng, một phương thức được gọi buidl();để tạo đối tượng.
Good good = new Good.Builder(40, 20)
        .c(2)
        .d(4)
        .e(23)
        .f(9)
        .buidl();
Nếu tôi muốn tạo một đối tượng có hai tham số bắt buộc và một tham số tùy chọn, nó sẽ trông như thế này:
Good good = new Good.Builder(40, 20)
        .c(2)
        .buidl();
Nếu tôi muốn tạo một đối tượng chỉ có hai tham số bắt buộc, nó sẽ trông như thế này:
Good good = new Good.Builder(40, 20)
         .buidl();
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION