exemples Javascript décrit ici le mode de programmation orienté objet combinaison.Partager vous pour votre référence, comme suit:

  Contour

  La définition du mode combiné: le mode de combinaison (modèle composite) parfois appelé aussi partie - le schéma général, il nous fait interroger la structure de l''arbre, le flou le concept d''éléments simples et complexes des éléments, le client peut être aussi simple à des éléments de poignée des éléments complexes, de sorte que la structure interne du client de l''élément de découplage complexe et.baike //: de Baidu Encyclopédie: http.baidu.com / view / 3591789.htm

  En fait, à partir après avoir fait face cinq objets, les relations avec le javascript est lui-même pas très grand, plus important encore, quelques-uns des concepts de modèles de conception, aussi longtemps que la compréhension des connaissances générales orientée objet de javascript, saisir le sens des modèles de conception, le code lui-même est pas difficile.

  Voici brièvement le mode combiné, le mode est en fait une combinaison d''une série d''objets similaires ou similaires dans une combinaison de grands objets, l''objet est fourni par le grand nombre d''interfaces couramment utilisées pour faire fonctionner sur ces petits objets, réutilisabilité du code, le fonctionnement de simples étrangers.Par exemple, sous une forme de l''élément, sans tenir compte de la conception de page, habituellement sur l''entrée gauche, et ceux-ci d''entrée a un nom et la valeur de la propriété, de sorte que vous pouvez entrer ces éléments forment l''objet en tant que membre du combiné, forment l''objet fournir des interfaces externes, ils peuvent réaliser des opérations simples telles que la définition d''une valeur d''entrée, ajouter / supprimer une entrée et ainsi de suite .

  texte

  Introduction: mode combiné connu dans le cadre de la composition globale, semblable à un groupe d''objets comme un objet unique.modèle de combinaison sur la base de l''objet composite d''une structure arborescente, et la hiérarchie globale pour une partie

  Définition: la combinaison d''une pluralité d''objets formant une structure arborescente hiérarchique comportant un mécanisme pour représenter une partie de l''ensemble des relations.modèles de combinaison des objets individuels cohérents (à savoir, les feuilles des objets), et des combinaisons d''objets (à savoir, les objets conteneurs) en utilisant une combinaison de motif et peut faire partie intégrante du motif.

  Il est un schéma de structure de l''objet.

  Scène: sur le personnel de notre entreprise d''impression de l''architecture, en supposant que la différence entre l''ensemble de la gestion et le développement de la post après un seul, ne sont pas des employererés subalternes.Nous le faisons sous:

  Exemple:

  var CHEF = function (nom, département) {

  cette._name = nom || ''''; // Nom

  cette._dept = département || ''''; // Position

  cette._subordinates = []; // subordonné

  cette.ajouter = function (employé) {

  cette._subordinates.pousser (employé);

  }

  cette.supprimer = function (employé) {

  cette._subordinates.épissure (ce._subordinates.indexOf (employé), 1);

  }

  cette.getSubordinates = function () {

  retourner ce._subordinates;

  }

  cette.toString = function () {

  console.log ( ''Nom:'' + ce._name + ''la position:'' + ce._dept)

  }

  }

  var JAVARD = function (nom, département) {

  cette._name = nom || ''''; // Nom

  cette._dept = département || ''''; // Position

  cette.toString = function () {

  console.log ( ''Nom:'' + ce._name + ''la position:'' + ce._dept)

  }

  }

  var FERD = function (nom, département) {

  cette._name = nom || ''''; // Nom

  cette._dept = département || ''''; // Position

  cette.toString = function () {

  console.log ( ''Nom:'' + ce._name + ''la position:'' + ce._dept)

  }

  }

  addData de fonction () {

  PDG var = new CHEF ( ''Spancer'', ''PDG'');

  var = CTO nouveau chef ( ''zijian'', ''CTO'');

  var DIRECTEUR = nouveau chef (Jiang ?, ''leader'');

  var = JAVA_LEADER nouveau chef ( ''fei'', ''JAVA_LEADER'');

  var = FE_LEADER nouveau chef ( ''Risker'', ''FE_LEADER'');

  var wh = new FERD ( ''wanghui'', ''FE'');

  var si = new FERD ( ''si'', ''FE'');

  var = new amy FERD ( ''amy'', ''FE'');

  var wei = new JAVARD (wei ?, ''JAVA'');

  var guo = new JAVARD ( ''guo'', ''JAVA'');

  var yuans = new JAVARD ( ''yuan'', ''JAVA'');

  PDG.ajouter (CTO);

  CTO.ajouter (directeur);

  DIRECTEUR.ajouter (JAVA_LEADER);

  MANAGER.ajouter (FE_LEADER);

  FE_LEADER.ajouter (wh);

  FE_LEADER.ajouter (si);

  FE_LEADER.ajouter (amy);

  JAVA_LEADER.ajouter (wei);

  JAVA_LEADER.ajouter (guo);

  JAVA_LEADER.ajouter (yuans);

  retour directeur général;

  }

  var eachEmployee = function (employé) {

  for (var emploi des employés.getSubordinates ()) {

  employ.toString ();

  if (employer.l''emploi de getSubordinates.getSubordinates ().longueur> 0) {

  eachEmployee (emploi);

  }

  }

  }

  PDG var = addData ();

  PDG.toString ();

  eachEmployee (CEO);

  // Nom: Spancer, Position: CEO

  // Nom: Zijian, Position: CTO

  // Nom: jiang, Position: LEADER

  // Nom: fei, Position: JAVA_LEADER

  // Nom: wei, Position: JAVA

  // Nom: guo, Position: JAVA

  // Nom: yuans, Position: JAVA

  // Nom: Risker, Position: FE_LEADER

  // Nom: wanghui, Position: FE

  // Nom: si, Position: FE

  // Nom: amy, Position: FE

  nous écrivons simplement ici cette démonstration, la structure organisationnelle de l''entreprise à traverser la sortie.Parce que différents e et chef de fonctions spécifiques, nous avons technique et de gestion divisés en deux catégories.Mais il y a beaucoup de problèmes cette conception:

  * Une mauvaise évolutivité, lorsqu''un nouveau poste est généré quand il est classé comme une catégorie nouvelle ou existante mettre ce qui suit est un problème.

  * Lorsqu''un changement de comportement nécessite des modifications, un par un chef de classe troisième classe, ne sont pas conformes au principe de l''interrupteur.

  Ensuite, nous utilisons une combinaison de modes pour réaliser sous:

  var employé = function (nom, département) {

  cette._name = nom || ''''; // Nom

  cette._dept = département || ''''; // Position

  cette._subordinates = []; // subordonné

  cette.ajouter = function (employé) {

  cette._subordinates.pousser (employé);

  }

  cette.supprimer = function (employé) {

  cette._subordinates.épissure (ce._subordinates.indexOf (employé), 1);

  }

  cette.getSubordinates = function () {

  retourner ce._subordinates;

  }

  cette.toString = function () {

  console.log ( ''Nom:'' + ce._name + ''la position:'' + ce._dept)

  }

  }

  addData de fonction () {

  PDG var = new employé ( ''Spancer'', ''CEO'');

  var CTO = new employé ( ''Zijian'', ''CTO'');

  var = new LEADER employé ( ''jiang'', ''Leader'');

  var = new JAVA_LEADER employé ( ''fei'', ''JAVA_LEADER'');

  var = new FE_LEADER employé ( ''Risker'', ''FE_LEADER'');

  var wh = new Employee ( ''wanghui'', ''FE'');

  var si = new Employee ( ''si'', ''FE'');

  var amy = new Employee ( ''amy'', ''FE'');

  var = new wei employé ( ''wei'', ''JAVA'');

  var guo = new employé ( ''guo'', ''JAVA'');

  var yuans = new employé ( ''yuans'', ''JAVA'');

  CEO.ajouter (CTO);

  CTO.ajouter (LEADER);

  LEADER.ajouter (JAVA_LEADER);

  LEADER.ajouter (FE_LEADER);

  FE_LEADER.ajouter (wh);

  FE_LEADER.ajouter (si);

  FE_LEADER.ajouter (amy);

  JAVA_LEADER.ajouter (wei);

  JAVA_LEADER.ajouter (guo);

  JAVA_LEADER.ajouter (yuans);

  retour directeur général;

  }

  var eachEmployee = function (employé) {

  for (var emploi des employés.getSubordinates ()) {

  employ.toString ();

  if (employer.getSubordinates ().longueur> 0) {

  eachEmployee (emploi);

  }

  }

  }

  CEO var = addData ();

  CEO.toString ();

  eachEmployee (CEO);

  // Nom: Spancer, Position: CEO

  // Nom: Zijian, Position: CTO

  // Nom: jiang, Position: LEADER

  // Nom: fei, Position: JAVA_LEADER

  // Nom: wei, Position: JAVA

  // Nom: guo, Position: JAVA

  // Nom: yuans, Position: JAVA

  // Nom: Risker, Position: FE_LEADER

  // Nom: wanghui, Position: FE

  // Nom: si, Position: FE

  // Nom: amy, Position: FE

  Vous pouvez comparer les différences sous deux morceaux de code, nous utilisons une classe d''employés pour remplacer chef rd de classe et, en fait, c''est la clé du modèle composite:

  Définir une classe abstraite qui peut représenter à la fois chef peut également représenter rd, ajouter, est également basé sur la classe des employés lors de l''impression, sans avoir à conna?tre quel r?le cette personne.Il peut être un traitement unifié.

  mode combiné Résumé:

  avantage:

  * Il peut y avoir une hiérarchie d''objets complexe clairement défini, donc ignorer les différences au niveau du processus de développement de la clientèle

  * Lorsque les changements globaux, modifiez simplement une position

  Désavantages:

  * Ne peut pas limiter les résultats de la génération, le même ne peut pas être comme le premier exemple, tous les subordonnés ne sont pas rd propriété, il n''y a pas de méthode correspondante.Donc, faire attention lors de l''utilisation de ces contraintes

  scène applicable;

  * Dans un système de développement traitement du langage orienté objet nécessite une structure arborescente.

  * Dans la structure générale et une partie de l''espoir qui ignorent la différence entre eux, de sorte que le client a accepté de traiter.

  amis intéressés peuvent utiliser le HTML en ligne / CSS / code JavaScript outil en cours d''exécution: http: // outils.jb51.net / code / HtmlJsRun code ci-dessus en cours d''exécution test effet.

  Plus de résultats associés sur les lecteurs intéressés JavaScript peuvent consulter la rubrique du site: ? tutoriel d''introduction orienté objet javascript ?, ? JavaScript erreur et de débogage Sommaire des compétences ?, JavaScript algorithme traversal ? résumé des compétences des structures de données JavaScript et algorithmes ?, ? et Sommaire des compétences ? et ? récapitulatif de l''utilisation des mathématiques JavaScript "

  Dans cet article, nous espérons que l''aide à la programmation JavaScript.

  Vous pouvez également être intéressé par l''article: JavaScript Conception combinaison d''analyse de mode modèles de modèles de conception en mode mixte est utilisé dans la construction de programmes JavaScript Conception développement des modèles JavaScript dans la compréhension mode profondeur de combinaison de JavaScript série Tutorial (40): Design Patterns mode combiné combinaison détaillée de modèle de conception du mode javascript détaillé les principes et les modèles de conception d''applications - une combinaison de principe et le mode d''analyse des exemples d''application des modèles de conception JavaScript - fonctionnement en mode pont pour présenter des exemples de modèles d''analyse de conception JavaScript - simple, étude de cas modèle d''usine [cas] JavaScript conception de l''usine XHR mode détaillé --- singleton [] quatre formes de base du mode observateur design patterns JavaScript et publier s''abonner portfolio modèle design patterns JavaScript détaillés - Développer et présenter des études de cas

? Design patterns Javascript, ? les notes d''étude de sept: mode combiné de programmation orienté objet Javascript détaillée

Recommend Article: