创建型-工厂模式

学习笔记设计模式

简单工厂模式

场景

做一个信息录入系统,分别字段有【名字,年龄,职业,工作内容】, 工作内容需要根据不同的职业不同而改变

代码

function User(name , age, career, work) {
this.name = name
this.age = age
this.career = career
this.work = work
}
function Factory(name, age, career) {
let work
switch(career) {
case 'coder':
work = ['写代码','写系分', '修Bug']
break
case 'product manager':
work = ['订会议室', '写PRD', '催更']
break
case 'boss':
work = ['喝茶', '看报', '见客户']
case 'xxx':
// 其它工种的职责分配
...
return new User(name, age, career, work)
}

总结

工厂模式其实就是将创建对象的过程单独封装,如果你的代码中使用到大量的构造函数,大量的new我们就应该考虑是不是可以使用工厂模式来重构我们的代码了。