我们一起来读书吧 关注:154贴子:2,808
  • 0回复贴,共1

JavaScript 3章-6章

只看楼主收藏回复

传统的用面向对象方法去创建很多类去实现某些功能不妥当,这样不仅占用的很多类名称,而且别人使用这些方法的同时要记住每个类的名字,所以这样不适合团队开发,所以我们可以把这些类封装到一个函数里面,这样别人用你的类就不用记住每个类的名字,只用记住工厂的名字就可以了。
通过创建一个新的对象然后包装增强其属性和功能来实现。
这样实现的好处是可以不用创建很多类名。有些相同的功能可以复用。代码如下:
function createPop(type, text) {
var o = new Object();
o.content = text;
o.show = function() {
//显示方法
};
if(type == 'alert') {
//警告框差异部分
}
if(type == 'prompt') {
//提示框差异部分
}
if(type = 'confirm') {
//确认框差异部分
}
//将对象返回
return o;
}
//创建警示框
var userNameAlert = createPop('alert', '用户名只能是26个字母或者数字');
简单工厂模式有弊端,需求一直在更改,这样不仅要添加类,还要修改工厂函数,很是麻烦。要想解决这个问题,我们使用工厂方法模式,但是在这之前,我们先引入安全模式。
//安全模式创建的工厂类
var Factory = function(type,content){
if(this instanceof Factory){
var s = new this[type](content);
return s;
}else{
return new Factory(type, content);
}
}


IP属地:上海1楼2024-03-14 09:51回复