// Création d''une usine générique

  usine var = function () {};

  usine.prototype = {

  sellcar: function (marque) {

  voiture var = ce.createCar (marque);

  voiture retour;

  },

  createCar: function () {

  throw new Error ( "opération non pris en charge sur une classe abstraite);

  }

  }

  // Pékin Automotive Group

  var BJfactory = function () {};

  // hérité de l''usine, s''il vous pla?t se référer à https: // www.jb51.net / article / 184227.htm des deux successions orienté objet)

  étendre (BJfactory, usine);

  // remplacer la méthode automatique

  BJfactory.prototype.createCar = function (marque) {

  voiture var;

  commutateur (marque) {

  case ''BMW'':

  voiture = new BJbmw ();

  Pause;

  cas ''benz'':

  voiture = new BJbenz ();

  Pause;

  case ''audi'':

  voiture = new BJaudi ();

  Pause;

  défaut:

  voiture = new BJbmw ();

  }

  Interface.ensureImplements (voiture, voiture);

  voiture retour;

  }

  // SAIC

  var SHfactory = function ();

  étendre (SHfactory, usine);

  // forme avec Beiqi

  .

  // En conséquence, vous achetez une voiture à Beijing

  var fac = new BJfactory ();

  // appeler la méthode de la classe parent

  var = mycar fac.sellcar ( ''benz'');

  // pour acheter une voiture à Shanghai

  fac = new SHfactory ();

  hercar = fac.sellcar ( ''audi'');

  // Note a marqué deux appels de la ligne rouge, l''appelant est AAAF, en fait deux usine de sous-classes différentes, mais appelez la méthode sont les mêmes, ce qui est d''utiliser la méthode de l''usine

? Design patterns Javascript, ? les notes d''étude de cinq: usine modèle de programmation orienté objet étude de cas Javascript

Recommend Article: