kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015
-
12 juin 2009 à 22:39
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015
-
16 juin 2009 à 14:13
Bonjour...
Je suis en train de finir un code poo en javascript et je bloque sur un truc... je voudrais donc votre avis d'autant plus que javascript n'est pas mon langage de prédilection et que, même si j'ai des bonnes notions en poo, la poo en javascript est à mon sens un peu particulière... .. .
Bref l'objet en question, qui est lui même une collection d'objets, agit comme une faktory on récupère un objet via une méthode et on travaille à partir de cet objet, jusque là rien d'extraordinaire... là ou je "bloque" c'est que je voudrait renvoyer un objet "neuf" sauf pour une propriété que je voudrais commune à tous mes objets... un peu comme une config qui serait commune à tous les objets... pour l'instant je fonctionne par clonage, pas par choix mais parce que je l'ai codé comme ça donc je voudrais votre avis voir si y a plus propre comme façon de faire... .. .
kankrelune
Messages postés1293Date d'inscriptionmardi 9 novembre 2004StatutMembreDernière intervention21 mai 2015 13 juin 2009 à 20:09
Et bhé... je vois que le sujet déchaine les foules... lol... .. . ;)
Allez un bout de code... ça peut aider pour donner un avi... voila ce que j'ai pour l'instant... ça tourne plutôt bien à voir si y a pas plus simple/propre comme façon de faire je suis preneur... .. .
varmaFactory = {
commonVars : {},
getNew: function() {
varnewObj = newobjectModel();
// j'étend mon objet avec certaines methode de ma factory
[ 'maMethod', 'autreMethode'].forEach( function(copy) {
newObj[copy] = maFactory [copy];
}
);
// je met a jour ma propriété commune
// je fais ça comme ça car je veux que les modifs de commonVars
// via maFactory soient effective sur toutes mes instances mais pas l'inverse
this.commonVars.forEach( function(copy) {
newObj.commonVars[copy] = maFactory.commonVars[copy];
}
);
returnnewObj;
}
};
functionobjectModel() {
// on controle si l'instance est appelée par la factory ou non
if(arguments.callee.caller != maFactory.getNew ) {
throw newError("objectModel can not be directly instancied");
}
this.commonVars = {};
}
Voila voila... les avis sont les bienvenues... .. .