亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

建造者模式

建造者模式

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

使用场景

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

例子:

// 基本信息类
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 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
Web前端工程師
手記
粉絲
1.4萬
獲贊與收藏
860

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消