js抽象工場モデル
2235 ワード
: ——
(Abstract Factory): , 。
5.1: ——
javascript abstract , 。 ,
, ,javascript , 。
// ,
var Car = function(){};
Car.prototype = {
getPrice: function(){
return new Error( " " );
},
getSpeed: function(){
return new Error( " " );
}
}
car , , prototype , 。
, , , , 。
, , , , 。
, , ,
, , 。
, , , 。
——
var VehicleFactory = function( subType, superType ){
//
if( typeof VehicleFactory[ superType ] ==="function" ){
//
var F = function(){};
//
F.prototype = new VehicleFactory[ superType ]();
//
subType.prototype = new F();
}else{
//
throw new Error( "" );
}
}
//
VehicleFactory.Car = function(){
this.type = "car";
};
VehicleFactory.Car.prototype = {
getPrice: function(){
return new Error( " " );
},
getSpeed: function(){
return new Error( " " );
}
};
var BMW = function( price, speed ){
this.price = price;
this.speed = speed;
};
VehicleFactory( BMW, "Car" );
BMW.prototype.getPrice = function(){
return this.price;
}
var bmw = new BMW( 100000, 1000 );
console.log( bmw.getPrice() );
, 。 ,
, , , 。 JavaScript ,
。