Skip to content

Instantly share code, notes, and snippets.

@marc-x-andre
Created November 9, 2017 15:50
Show Gist options
  • Save marc-x-andre/205a0e672bcde2a82cf54c051f700764 to your computer and use it in GitHub Desktop.
Save marc-x-andre/205a0e672bcde2a82cf54c051f700764 to your computer and use it in GitHub Desktop.
Java Builder (Design Pattern) [French/Français]
Java Builder (Design Pattern) [French/Français]
public class Main {
public static void main(String... args) {
Utilisateur user = new Utilisateur.Builder()
.nom("Doe")
.prenom("John")
.age(23)
.sexe('M')
.build();
System.out.println(user);
}
}
public class Utilisateur {
private String nom;
private String prenom;
private char sexe;
private int age;
private Utilisateur(String nom, String prenom, char sexe, int age) {
this.nom = nom;
this.prenom = prenom;
this.sexe = sexe;
this.age = age;
}
private Utilisateur() { }
public static class Builder {
private Utilisateur utilisateur;
Builder() {
utilisateur = new Utilisateur();
}
Utilisateur build() {
Utilisateur utilisateurCree = utilisateur;
utilisateur = new Utilisateur();
return utilisateurCree;
}
public Builder nom(String nom) {
this.utilisateur.nom = nom;
return this;
}
public Builder prenom(String prenom) {
this.utilisateur.prenom = prenom;
return this;
}
public Builder sexe(char sexe) {
this.utilisateur.sexe = sexe;
return this;
}
public Builder age(int age) {
this.utilisateur.age = age;
return this;
}
}
@Override
public String toString() {
return "Utilisateur{" +
"nom='" + nom + '\'' +
", prenom='" + prenom + '\'' +
", sexe=" + sexe +
", age=" + age +
'}';
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment