function Student(){
this.info = '学生11111';
}
function Teacher(){
this.info = '老师1111';
}
function StudentFactory(){
return new Student();
}
function TeacherFactory(){
return new Teacher();
}
function userProducer(factory){
switch (factory) {
case 'student':
return StudentFactory;
case 'teacher':
return TeacherFactory;
default:
throw '没有这个角色';
}
}
var factory = userProducer('student');
var t = new factory();
console.log(t)
单例模式1
// 方式1 全局变量 个人理解
// 例如
var a = { baobao: 1 }
// 全局变量操作的时候 用对象的方式管理全局变量
// 方式2
function GirlFriend() {
if (GirlFriend.fn) {
return GirlFriend.fn;
} else {
GirlFriend.fn = this;
GirlFriend.fn.gift = {
baobao: 1
};
}
}
// 这样女朋友始终是一个了,不会随着new对象包包被重置为1
var gf = new GirlFriend();
gf.gift.baobao = 2;
console.log(gf.gift)
var gf1 = new GirlFriend();
console.log(gf1.gift)
var gf2 = new GirlFriend();
console.log(gf2.gift)
单例模式2 node
var singleton = null;
function Singleton (){
this.baobao = 1;
}
module.exports = {
getInstance(){
if(!singleton){
singleton = new Singleton();
}
return singleton
}
}