计算器实例:
一个只有两种运算的计算器。加法和减法。将加法和减法抽象成公共的运算类。然后又运算类派生两个实现类。
运算类代码:
// JavaScript operation
function Operation(num1,num2){
this.num1 = num1;
this.num2 = num2;
}
派生的加法类add:
//add operation
Operation.prototype.add = function(){
var result =0;
result = parseFloat(this.num1) + parseFloat(this.num2);
return result;
};
派生的减法类sub:
//subtraction aperation
Operation.prototype.subtraction = function(){
var result =0;
result = parseFloat(this.num1) - parseFloat(this.num2);
return result;
};
实现工厂类通过运算符创建运算方法
// JavaScript factory
function factory(num1,num2,theOperation){
var operation = new Operation(num1,num2);//创建运算对象
var result;
switch(theOperation){
case "add":
result = operation.add();
break;
case "sub":
result = operation.subtraction();
break;
}
return result;
}
视图实现代码:
$(document).ready(function(e) {
$("#btnOperation").click(function(){
var num1 = $("#txtnum1").val();
var num2 = $("#txtnum2").val();
var theOperation = $("#txtTheOperation").val();
var result;
result = factory(num1,num2,theOperation);
alert(result);
});
});
总结:
简单工厂模式是创建产品生产车间来生产产品。其重点在于如何分封产品车间。二工厂的作用就是创建实现产品的车间。
JavaScript创建类用function。继承这个类则需要用prototype来实现。