<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script>
//简单工厂模式
var BicycleShop = function(){};
BicycleShop.prototype ={
sellBicycle : function(model){
var bicycle = null;
switch(model){
case 'The Speedster':
bicycle = new Speedster();
break;
case 'The lowride':
bicycle = new Lowride();
break;
case 'The Comfort Cruise':
bicycle = new ComfortCruise();
break;
};
Interface.ensureImplements(bicycle,Bicycle);
bicycle.assemble();
bicycle.wash(); return bicycle;
}
}; var AcmeBicycleShop = function(){};
extent(AcmeBicycleShop, BicycleShop);
AcmeBicycleShop.prototype.createBicycle = function(model){
var bicycle = null;
switch(model){
case 'The speedster':
bicycle = new AcmeSpeedster();
break;
case 'The Lowrider':
bicycle = new AcmeLowrider();
break;
case 'The Flatlander':
bicycle = new AcmeFlatlander();
break;
case 'The Comfort Cruiser':
default :
bicycle = new AcmeComfortCruiser();
};
Interface.ensureImplements(bicycle,Bicycle);
return bicycle;
};
//工厂模式适用与一个 fn 根据参数不同,创建不同的对象
</script>
</body>
</html>