设计模式的核心就是观察整个逻辑中 变 和 不变 的部分,将其分离,保持变化的部分灵活,不变的部分稳定。
——修言
定义
工厂模式就是将简单的创建对象的过程进行单独封装,共性的部分直接创建,变化的部分根据不同的逻辑进行判断,从而创建对象。
实战
需求
一个信息录入系统,需要创建员工的名字,年龄,职业,工作内容。其中职业和工作内容挂钩,不同职业对应不同的工作内容。
分析
不变的部分为员工的名字name、年龄age、职业career工作内容根据职业的不同进行划分,则需要改变的部分为工作work
实现
//创建构造器const User = function (name, age, carreer, work) {this.name = name;this.age = age;this.career = career;this.work = work;}//创建工厂方法const Factory = function (name, age, career) {let work;switch(career) {case 'coder':work = ['代码', '游戏', '睡觉'];case 'pm':work = ['催更', '讨论', '开会'];case 'boss':work = ['报纸', '咖啡', '数钱'];}return new User(name, age, career, work)}
