JavaRush /Blog Java /Random-FR /Générateur de modèles
Нина Можарская
Niveau 17
Киев

Générateur de modèles

Publié dans le groupe Random-FR
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.
Générateur de modèles - 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;     }
Désormais, dans la méthode, mainlors de la création d'un objet, le constructeur de la classe statique Builderavec 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();
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION