Javascript设计模式之创建型设计模式
设计模式是一种软件开发的思想,有益于降低代码的耦合性,增强代码的健壮性。往往在大型项目中用的比较多。
一. 简单工厂模式
简单工厂模式: 又叫静态工厂方法,由一个工厂对象决定创建某一种产品对象实例。主要用来创建同一类对象
/*方式一,对不同类实例化封装*/
//创建提示框类
var LoginAlert = function(text){
this.content = text
}
LoginAlert.prototype.show = function(){
//显示警示框
}
var userNameAlert = new LoginAlert('用户名不能多于16个字母或数字');
userNameAlert.show();
var passWordAlert = new LoginAlert('密码错误');
passWordAlert.show();
//创建确认框类
var LoginConfirm = function(text){
this.content = text
}
LoginConfirm.prototype = {
show:function(){
//弹出确认框(确认框是包含两个按钮的)
},
draw:function(){//绘制确认框
}
}
var loginSucess = new LoginConfim('欢迎回来');
var loginFailed = new LoginConfim('登录失败');
loginSucess.draw();
loginSucess.show();
loginFailed.show();
//现在将两个类封装成一个简单工厂函数
var PopFactory = function(name){
switch(name){
case 'alert'
return new LoginAlert();
case 'confirm'
return new LoginConfirm();
}
}
new PopFactory('alert');
/*方式二,创建相似对象*/
function CreatPop(type,text){
var o = new Object();
o.content = text;
o.show = function(){
//显示弹框
}
if(type == 'alert'){
//
}
if(type == 'confirm'){
//确认框
}
return o
}
var loginConfirm = new CreatPop('confirm','欢迎回来')
总结
第一种方式是通过实例化对象创建的,第二种是通过创建一个新对象然后包装增强其属性功能来实现的。他们之间的差异性也造成前面通过类创建的对象,如果这些类继承一同父类,那么他们的父类原型上的方法是可以共用的。而寄生方式创建的对象是一个新个体,所以他们的方法就不能共用了。