文档章节

工厂模式

林落雨
 林落雨
发布于 2017/04/25 17:59
字数 135
阅读 3
收藏 0
// 父构造函数
function CarMaker(){}

// 父构造函数的原型方法
CarMaker.prototype.drive = function(){
	return this.doors;
}


// 静态工厂方法
/**
 * @param  type 具体的汽车制造商
 */
CarMaker.factory = function(type){
	var constr = type,
		newcar;

	// 如果构造函数不存在则发生错误
	if(typeof CarMaker[constr] !== "function"){
		throw{
			name:"Error",
			message:constr
		}
	}

	// 原型继承父类,但仅继承一次
	if(typeof CarMaker[constr].prototype.drive != "function"){
		CarMaker[constr].prototype = new CarMaker();
	}

	// 创建一个新实例
	newcar = new CarMaker[constr]();

	return newcar;
}

// 定义特定的汽车制造商
CarMaker.Compact = function(){
	this.doors = 4;
}

CarMaker.SUV = function(){
	this.doors = 24;
}

 

© 著作权归作者所有

共有 人打赏支持
林落雨
粉丝 0
博文 13
码字总数 2308
作品 0
杭州

暂无文章

Centos7安装docker和docker-compose

docker-安装 yum update yum install -y docker-engine docker-compose pip install -U docker-compose...

落叶清风
20分钟前
1
0
7个Python实战项目代码,让你感受下大神是如何起飞的!

关于Python有一句名言:不要重复造轮子。 但是问题有三个: 1、你不知道已经有哪些轮子已经造好了,哪个适合你用。有名有姓的的著名轮子就400多个,更别说没名没姓自己在制造中的轮子。 2、确...

糖宝lsh
21分钟前
1
0
【随记】Maven 与mysql 版本(maven mysql 5.1.38用的最多)

MySQL Connector/J 我的电脑mysql版本为5.7.20-log maven pom.xml 依赖可用5.1.38 pom.xml依赖代码 $加<properties>变量名的实例代码 <properties><!-- data --><mysql-connector-ja......

颖伙虫
23分钟前
1
0
观察者模式

意图: 在对象的内部状态发生变化时,自动通知外部对象进行响应。 构成 被观察者:内部状态有可能被改变,而且又需要通知外部的对象。 观察者:需要对内部状态的改变做出响应的对象。 Java实...

noob_fly
30分钟前
1
0
设计模式之 MVC

MVC 是 模块化思想或者分层思想的实践。 当我们设计一个Web应用的时候,我们的业务流是,读取数据库中的数据,进行逻辑处理,渲染到页面;如果是交互型的页面,那么页面有输入或者事件发生的...

backbye
32分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部