为了账号安全,请及时绑定邮箱和手机立即绑定

建造者模式

建造者模式

通过多个简单对象的有序组合,装配出一个复杂对象,就叫做建造者模式。

使用场景

如果创建一个对象特别复杂,其中有多个成员需要单独处理,我们可以把需要单独处理的成员抽象为子类,由子类实现具体的组建过程。
比如要创建一个实习人员的岗位信息,其中学历和职位需要单独处理:

例子:

// 基本信息类
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 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消