Monteur (informatique)

Monteur (informatique)

Monteur (patron de conception)

Le monteur (builder) est un patron de conception utilisé pour la création d'une variété d'objets complexes à partir d'un objet source. L'objet source peut consister en une variété de parties contribuant individuellement à la création de chaque objet complet grâce à un ensemble d'appels à l'interface commune de la classe abstraite Monteur.

Un exemple d'objet source est une liste de caractères ou d'images dans un message devant être codé. Un objet directeur est nécessaire pour fournir les informations à propos de l'objet source vers la classe Monteur. La classe Monteur abstraite pourrait être une liste d'appel de l'interface que la classe directeur utilise comme par exemple handleCharacter() ou handleImage(). Chaque version concrète de la classe Monteur pourrait implémenter une méthode pour ces appels ou bien simplement ignorer l'information si appelée. Un exemple de monteur concret serait enigmaBuilder qui crypterait le texte, mais ignorerait les images.

Dans l'exemple précédent, le logiciel va créer une classe Monteur spécifique, enigmaBuilder. Cet objet est passé à un objet directeur simple qui effectue une itération à travers chaque donnée du message principal de l'objet source. La classe monteur crée, incrémentalement, son projet final. Finalement, le code principal va demander l'objet final depuis le Monteur et ensuite détruire celui-ci et l'objet directeur. Par la suite, si jamais un remplacement de la technique de cryptage de enigmaBuilder par une autre se faisait sentir, une nouvelle classe Monteur pourrait être substituée avec peu de changements pour la classe directeur et le code principal. En effet, le seul changement serait la classe Monteur actuelle passée en paramètre au directeur.

But : Séparer la construction d'un objet complexe de la représentation afin que le même processus de construction puisse créer différentes représentations.

Sommaire

Diagramme de classes

Monteur Structure

  • Monteur
    • interface abstraite pour construire des produits
  • MonteurConcret
    • fournit une implémentation de Monteur
    • construit et assemble les différentes parties des produits
  • Directeur
    • construit un objet utilisant la méthode de conception Monteur
  • Produit
    • l'objet complexe en cours de construction

Exemple

Java

/* Produit */
class Pizza {
  private String pate = "";
  private String sauce = "";
  private String garniture = "";
 
  public void setPate(String pate)          { this.pate = pate; }
  public void setSauce(String sauce)         { this.sauce = sauce; }
  public void setGarniture(String garniture) { this.garniture = garniture; }
}
 
 
/* Monteur */
abstract class MonteurPizza {
  protected Pizza pizza;
 
  public Pizza getPizza() { return pizza; }
  public void creerNouvellePizza() { pizza = new Pizza(); }
 
  public abstract void monterPate();
  public abstract void monterSauce();
  public abstract void monterGarniture();
}
 
/* MonteurConcret */
class MonteurPizzaHawaii extends MonteurPizza {
  public void monterPate()      { pizza.setPate("croisée"); }
  public void monterSauce()     { pizza.setSauce("douce"); }
  public void monterGarniture() { pizza.setGarniture("jambon+ananas"); }
}
 
/* MonteurConcret */
class MonteurPizzaPiquante extends MonteurPizza {
  public void monterPate()      { pizza.setPate("feuilletée"); }
  public void monterSauce()     { pizza.setSauce("piquante"); }
  public void monterGarniture() { pizza.setGarniture("pepperoni+salami"); }
}
 
 
/* Directeur */
class Serveur {
  private MonteurPizza monteurPizza;
 
  public void setMonteurPizza(MonteurPizza mp) { monteurPizza = mp; }
  public Pizza getPizza() { return monteurPizza.getPizza(); }
 
  public void construirePizza() {
    monteurPizza.creerNouvellePizza();
    monteurPizza.monterPate();
    monteurPizza.monterSauce();
    monteurPizza.monterGarniture();
  }
}
 
 
/* Un client commandant une pizza. */
class ExempleMonteur {
  public static void main(String[] args) {
    Serveur serveur = new Serveur();
    MonteurPizza monteurPizzaHawaii  = new MonteurPizzaHawaii();
    MonteurPizza monteurPizzaPiquante = new MonteurPizzaPiquante();
 
    serveur.setMonteurPizza(monteurPizzaHawaii);
    serveur.construirePizza();
 
    Pizza pizza = serveur.getPizza();
  }
}

PHP

/* Produit */
class Pizza {
  private $_pate = "";
  private $_sauce = "";
  private $_garniture = "";
 
  public function setPate($pate)           { $this->_pate = $pate; }
  public function setSauce($sauce)         { $this->_sauce = $sauce; }
  public function setGarniture($garniture) { $this->_garniture = $garniture; }
}
 
 
/* Monteur */
abstract class MonteurPizza {
  protected $_pizza;
 
  public function getPizza()           { return $this->_pizza; }
  public function creerNouvellePizza() { $this->_pizza = new Pizza(); }
 
  abstract public function monterPate();
  abstract public function monterSauce();
  abstract public function monterGarniture();
}
 
/* MonteurConcret */
class MonteurPizzaHawaii extends MonteurPizza {
  public function monterPate()      { $this->_pizza->setPate("croisée"); }
  public function monterSauce()     { $this->_pizza->setSauce("douce"); }
  public function monterGarniture() { $this->_pizza->setGarniture("jambon+ananas"); }
}
 
/* MonteurConcret */
class MonteurPizzaPiquante extends MonteurPizza {
  public function monterPate()      { $this->_pizza->setPate("feuilletée"); }
  public function monterSauce()     { $this->_pizza->setSauce("piquante"); }
  public function monterGarniture() { $this->_pizza->setGarniture("pepperoni+salami"); }
}
 
 
/* Directeur */
class Serveur {
  private $_monteurPizza;
 
  public function setMonteurPizza(MonteurPizza $mp) { $this->_monteurPizza = $mp; }
  public function getPizza()                        { return $this->_monteurPizza->getPizza(); }
 
  public function construirePizza() {
    $this->_monteurPizza->creerNouvellePizza();
    $this->_monteurPizza->monterPate();
    $this->_monteurPizza->monterSauce();
    $this->_monteurPizza->monterGarniture();
  }
}
 
/* Un client commandant une pizza. */
$serveur = new Serveur();
$monteurPizzaHawaii = new MonteurPizzaHawaii();
$monteurPizzaPiquante = new MonteurPizzaPiquante();
 
$serveur->setMonteurPizza($monteurPizzaHawaii);
$serveur->construirePizza();
 
$pizza = $serveur->getPizza();

Voir aussi

Patrons associés

  • Portail de l’informatique Portail de l’informatique
Ce document provient de « Monteur (patron de conception) ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Monteur (informatique) de Wikipédia en français (auteurs)

Игры ⚽ Нужно решить контрольную?

Regardez d'autres dictionnaires:

  • Monteur (Motif de conception) — Monteur (patron de conception) Le monteur (builder) est un patron de conception utilisé pour la création d une variété d objets complexes à partir d un objet source. L objet source peut consister en une variété de parties contribuant… …   Wikipédia en Français

  • Monteur (motif de conception) — Monteur (patron de conception) Le monteur (builder) est un patron de conception utilisé pour la création d une variété d objets complexes à partir d un objet source. L objet source peut consister en une variété de parties contribuant… …   Wikipédia en Français

  • Monteur de film — Monteur Le monteur film assure l assemblage des plans et séquences d un film pour en délivrer toute l’« essence » voulue lors du tournage par le réalisateur. Il s agit d un travail complexe alliant une partie artistique importante… …   Wikipédia en Français

  • Monteur vidéo — Montage vidéo Le montage vidéo consiste à sélectionner des images enregistrées sur un support non argentique et à assembler le tout en une suite cohérente. C est l une des opérations finales dans la réalisation de documentaires, téléfilms,… …   Wikipédia en Français

  • Monteur (patron de conception) — Le monteur (builder) est un patron de conception utilisé pour la création d une variété d objets complexes à partir d un objet source. L objet source peut consister en une variété de parties contribuant individuellement à la création de chaque… …   Wikipédia en Français

  • Monteur — Le chef monteur ou monteur film assure l assemblage des plans et séquences d un film, c est à dire le montage, pour en délivrer toute l’« essence » décrite par le scénario et voulue lors du tournage par le réalisateur. Il s agit d un… …   Wikipédia en Français

  • Monteuse — Monteur Le monteur film assure l assemblage des plans et séquences d un film pour en délivrer toute l’« essence » voulue lors du tournage par le réalisateur. Il s agit d un travail complexe alliant une partie artistique importante… …   Wikipédia en Français

  • Montage vidéo — Le montage vidéo consiste à sélectionner des images enregistrées sur un support qui n est pas photochimique et à assembler le tout en une suite cohérente. C est l une des opérations finales dans la réalisation de documentaires, téléfilms,… …   Wikipédia en Français

  • Montage Vidéo — Le montage vidéo consiste à sélectionner des images enregistrées sur un support non argentique et à assembler le tout en une suite cohérente. C est l une des opérations finales dans la réalisation de documentaires, téléfilms, reportages, vidéo… …   Wikipédia en Français

  • Montage assisté par ordinateur — Montage vidéo Le montage vidéo consiste à sélectionner des images enregistrées sur un support non argentique et à assembler le tout en une suite cohérente. C est l une des opérations finales dans la réalisation de documentaires, téléfilms,… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”