JS 设计模式(工厂模式环境搭建)

 

<!--引入的核心JS文件-->
<script type="text/javascript" src="CommonUtil.js"></script>
<script type=text/javascript charset=utf-8>
<!--JS设计模式(工厂模式)-->
//搭建一个工厂环境
//卖车店
function CarShop(){};
CarShop.prototype={
constructor:CarShop,
sellCar:function(type){//卖车方法
var car;//声明一个变量
switch(type){
case ‘Benz‘:car=new Benz();break;
case ‘Bmw‘:car=new Bmw();break;
case ‘Audi‘:car=new Audi();break;
defanlt:‘not buy it‘;
}
//检验接口实现
JALJA.Interface.ensureImplements(car,CarInterface);
return car;
}
};
var CarInterface =new JALJA.Interface("CarInterface",[‘start‘,‘run‘]);
//所有车的父类
function BaseCar(){};
BaseCar.prototype={
constructor:BaseCar,
start:function(){
alert(this.constructor.name + " :start");
},
run:function(){
alert(this.constructor.name +" :run");
}
}
//具体的车
function Benz(){};
//继承 --放在特有属性前面
JALJA.extend(Benz,BaseCar);
//定义自己特有的属性
Benz.prototype.driverBenz=function(){
alert("Benz 特有1");
};
function Bmw(){};
//继承 --放在特有属性前面
JALJA.extend(Bmw,BaseCar);
//定义自己特有的属性
Bmw.prototype.driverBmw=function(){
alert("Bmw 特有1");
};
function Audi(){};
//继承 --放在特有属性前面
JALJA.extend(Audi,BaseCar);
//定义自己特有的属性
Audi.prototype.driverAudi=function(){
alert("Audi 特有1");
};
//测试
var shop =new CarShop();
var car1=shop.sellCar(‘Audi‘);
car1.run();
car1.start();
car1.driverAudi();
var car2=shop.sellCar(‘Benz‘);
car2.run();
car2.start();
car2.driverBenz();
</script>

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。