创建型设计模式
1. 简单工厂模式
let Basketball = function() {
this.info = '篮球'
}
Basketball.prototype = {
getInfo: function() {
return this.info
}
}
let Football = function() {
this.info = '足球'
}
Football.prototype = {
getInfo: function() {
return this.info
}
}
let SportsFactory = function(name) {
switch(name) {
case 'baskteball':
return new Basketball();
break;
case 'football':
return new Football();
break;
}
}
收获:
团队开发不同于个人,对全局变量的限制很大,要尽量少得创建全局变量。如果有同一类对象在不同需求中重复使用,那么大部分是不需要重复创建的,要学会代码复用。用简单工厂来创建对象,可以减少全局变量创建提高代码复用率,它的使用场合限制在创建单一对象。
2. 方法工厂模式
// 安全模式创建的工厂类
let Factorial = function(type, content) {
if (this instanceof Factorial) {
return new this[type](content);
} else {
return new Factorial(content);
}
}
Factorial.prototype = {
JavaScript: function(content) {
return content;
},
php: function(content) {
return content;
}
}
收获:
对于创建很多类的对象,简单工厂模式就不适合了,通过工厂模式可以轻松创建多个类的实例对象,而且避免了使用者与对象类之间的耦合,用户不必关心创建该对象的具体类,只需调用工厂方法即可。