javascript设计模式——建造者模式

特点:工厂模式的特点是创建的结果都是一个完整的个体,我们对创建过程不得而知,我们只了解得到的创建结果对象。而建造者模式中我们关心的是对象的创建过程,因此我们通常将创建对象的类模块化,这样使被创建的类的每一个模块都可以得到灵活的运用与高质量的复用。

实现:创建一位应聘者,分别有基础信息类(技能和爱好),姓名解析类(分隔FirstName和LastName)和期望职位类(职位名称,职位描述)

Human类

    var Human = function(param) {
      // 技能
      this.skill = param && param.skill || '保密'
      // 兴趣爱好
      this.hobby = param && param.hobby || '保密'
    }
    Human.prototype = {
      getSkill: function() {
        return this.skill
      },
      getHobby: function() {
        return this.hobby
      }
    }

姓名处理类

    var Named = function(name) {
      var that = this;
      (function(name, that) {
        that.wholeName = name
        if(name.indexOf(' ') > -1) {
          that.FirstName = name.slice(0, name.indexOf(' '))
          that.secondName = name.slice(name.indexOf(' '))
        }
      })(name, that)
    }

职位处理类

    var Work = function(work) {
      var that = this;
      (function(work, that){
        switch(work) {
          case 'code':
            that.work = '工程师'
            that.workDescript = '每天撸代码'
            break
          case 'UI':
            that.work = '设计师'
            that.workDescript = '画画画'
            break
          default:
            that.work = work
            that.workDescript = '不知道这个职业'
        }
      })(work, that)
    }
    Work.prototype.changeWork = function(work) {
      this.work = work
    }
    Work.prototype.changeDescript = function(setence) {
      this.workDescript = setence
    }

应聘者创建类

    var Person = function(name, work) {
      var _person = new Human()
      _person.name = new Named(name)
      _person.work = new Work(work)
      return _person
    }

执行结果

    var zhengguorong = new Person('zheng guorong', 'code')
    console.log(zhengguorong.skill) // 保密
    console.log(zhengguorong.name.FirstName) // zheng
    console.log(zhengguorong.work.workDescript) // 每天撸代码
    zhengguorong.work.changeWork('UI')
    console.log(zhengguorong.work.work) // UI
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 接触前端两三个月的时候,那时候只是听说设计模式很重要,然后我就去读了一本设计模式的书,读了一部分,也不知道这些设计...
    艰苦奋斗的侯小憨阅读 8,265评论 2 39
  • 在异城怀念另一座城的味道, 忆起了谁,亦或者, 忽略了谁。 空气中调合着我情绪中的模糊分子, 如同高脚杯中的曼哈顿...
    Kevin3R阅读 1,567评论 0 2
  • 写在前面的话:我的本科来自一个很普通的一本院校,甚至跟别人提起来压根都没有听说过,大学之前一直有名校情结,无奈没能...
    远方_先生阅读 13,680评论 50 140
  • 今天我们表演节目,妈妈说老师不让家长去,所以我妈妈没去,别人给我化了妆,就去演节目了,我们表演的节目叫《我骄傲,我...
    徐振恒阅读 1,760评论 0 0

友情链接更多精彩内容