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
- 1,110