Created
November 9, 2017 15:50
-
-
Save marc-x-andre/205a0e672bcde2a82cf54c051f700764 to your computer and use it in GitHub Desktop.
Java Builder (Design Pattern) [French/Français]
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java Builder (Design Pattern) [French/Français] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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