Factory
&
Builder
Jeudi 18 mai 2017
Victor OSTERTAG & Arthur VERVAET
Factory
Dans la vrai vie...
On fournit une matière première
Main d'oeuvre
et machines
Un produit final
des paramètres
une méthode d'instantiation
Un objet précis
Java
Créons une voiture à l'aide d'une factory
On possède plusieurs marques
Honda
Renault
Peugeot
new Honda();
new Renault();
new Peugeot();
La Factory
class CarFactory{
public function CarFactory(String marque){
if(marque.equals("honda"){
return new Honda();
}else if(marque.equals("renault")){
return new Renault();
}else if(marque.equals("peugeot")){
return new Peugeot();
}
}
}
CarFactory car = new CarFactory("honda");
Je veux créer un jeu, j'ai 3 types d'ennemis différents
Zergling
Hydralisk
Ultralisk
Qui vont apparaître aléatoirement sur une carte
On ne sait pas la classe d'avance...
Zergling zerg = new Zergling();
???? zerg = new ????();
La Factory
class ZergFactory{
public function ZergFactory(float random){
if(random < 0.33){
return new Zergling();
}else if(random < 0.66){
return new Ultralisk();
}else{
return new Hydralisk();
}
}
}
ZergFactory zerg = new ZergFactory(Math.random());
Builder
Je veux une
Honda !
Expert en peinture
Expert en carrosserie
Expert en pneu
Avec un builder, je vais avoir le "squelette" de la voiture.
Exemple
class CarBuilder{
private String couleur;
private String typeCarrosserie;
private String typePneu;
public function build(){
return new Car(this);
}
public void setCouleur(String couleur){
this.couleur = couleur;
}
public void setTypeCarrosserie(String TypeCarrosserie){
this.typeCarrosserie = typeCarrosserie;
}
public void setTypePneu(String TypePneu){
this.typePneu = typePneu;
}
}
CarFactory car = new CarFactory().setCouleur("bleu").build();
BUILDER
FACTORY
EMPRUNT
Maison
Voiture
Education
Chacun a des taux différents, des durées différentes, des montants différents, ...
Factory & Builder
By isvoli
Factory & Builder
- 975