1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| // "Class" Multiplier
function Multiplier( n1, n2 ){
this.result = n1 * n2;
}
// Construction de la factory avec n1 = 7
// pattern : http://addyosmani.com/resources/essentialjsdesignpatterns/book/#factorypatternjavascript
function MultiplierFactory(){}
MultiplierFactory.prototype.multiplierClass = Multiplier;
MultiplierFactory.prototype.createMultiplier = function( n2 ){
return new this.multiplierClass( 7, n2 );
};
// Utilisation de la factory
var multiplierFactory = new MultiplierFactory(),
multiplierBy3 = multiplierFactory.createMultiplier( 3 ),
multiplierBy4 = multiplierFactory.createMultiplier( 4 ),
multiplierBy5 = multiplierFactory.createMultiplier( 5 );
// true
console.log( multiplierBy3 instanceof Multiplier );
// 7 * 3 = 21
console.log( multiplierBy3.result );
// true
console.log( multiplierBy4 instanceof Multiplier );
// 7 * 4 = 28
console.log( multiplierBy4.result );
// true
console.log( multiplierBy5 instanceof Multiplier );
// 7 * 5 = 35
console.log( multiplierBy5.result ); |
Partager