建造者模式
建造者模式
通过多个简单对象的有序组合,装配出一个复杂对象,就叫做建造者模式。
使用场景
如果创建一个对象特别复杂,其中有多个成员需要单独处理,我们可以把需要单独处理的成员抽象为子类,由子类实现具体的组建过程。
比如要创建一个实习人员的岗位信息,其中学历和职位需要单独处理:
例子:
// 基本信息类
var Person = function (name, age, sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
// 学历类
var School = function (school) {
this.leve = school + (function (school) {
switch (school) {
case '专科':
return school + ':实习工资1000~2000元';
break;
case '本科':
return school + ':实习工资2000~4000元';
break;
case '研究生':
return school + ':实习工资4000~6000元';
break;
}
})(school);
}
// 职位类
var Work = function (work) {
this.role = work + (function (work) {
switch (work) {
case '前端':
return ':掌握JavaScript、CSS、HTML';
break;
case '后端':
return ':掌握Java、PHP、SQL';
break;
case '运维':
return ':掌握linux、OpenStack、Hadoop';
break;
}
})(work);
}
// 建造者模式
var worker = function (name, age, sex, school, work) {
var _p = new Person(name, age, sex);
_p.school = new School(school);
_p.work = new Work(work);
return _p;
};
//调用建造者函数
var p = worker('Tom', '21', 'male', '本科', '前端');
// 测试
console.log(p.name); //输出 Tom
console.log(p.age); //输出 21
console.log(p.sex); //输出 male
console.log(p.school.leve); //输出 本科
console.log(p.work.role); //输出 前端
建造者模式与工厂模式非常相似,但它们的侧重点不同:工厂模式的主要职责是创建,而建造者模式的主要职责是对对象的组装,顺序不同往往创建的对象也不同。
如有错误,欢迎指正,本人不胜感激。
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦