Javascript設計模式之建造者(四)

創建型設計模式-建造者模式

定義

所謂建造者模式,就是在於細節的考慮,我們需要考慮整體與細節,才能構建出符合條件的設計。也就是我們的類了。
表現層和我們的基層構建需要分離開來。

案例分析

1,求職者需要發佈簡歷在我們平臺
2,展示求職者的特長愛好
3,隱藏求職者的個人隱私信息,聯繫方式等

let Person = function(param){
   this.skill = param && param.skill || '保密'this.hobby = param && param.hobby || '保密';
}
Person.prototype = {
   getSkill(){
    return this.skill 
   }
   getHobby(){
    return this.hobby;
   }
}
let Named = function(name){
  let that = this;
  //構造器
  //構造函數解析姓名的姓與名 function(that,name){
     that.fullName = name;
     if(name.indexOf(' ') !== -1){
       that.firstName = name.slice(0,name.indexOf(' '));
       that.lastName = name.slice(name.indexOf(' '))
     }
   })(that,name);
}
let Work = function(work){
   var that = this;
   (function(that,work){
     switch(work){
       case 'CODER':
         that.work = '軟件工程師';
         that.workDescription = '編織碼農的世界'
         break;
       case 'UI':
         that.work = '平面設計師';
         that.workDescription = '設計總是那麼隨意但卻不失爲美感';
         break;
       case 'UE':
          that.work = '設計師';
          that.workDescription  ='走不一般的路,共通美的永恆'
          break;
       default:
         that.work = work;
         that.workDescription = '抱歉,我們還不清楚你所選擇的職位的相關描述'
         break;
     }
   })(that,work)
}
Work.prototype  = {
  changeWork(work){
    this.work = work;
  }
  changeDescription(description){
    this.workDescription = description;
  }
}

創建一個求職者

let JobSeeker =function(name,work){
 // 求職者緩存對象
  let _jobSeeker = new Person();
   // 創建求職者姓名
   _jobSeeker.name = new Named(name);
   //創建求職者期待職位
   _jobSeeker.work = new Work(work);
  return _jobSeeker;
}
//測試
let Anna = new JobSeeker('Anna Chen','UE');
console.log(Anna.name.firstName) // Anna;
console.log(Anna.work.workDescription) // 走不一般的路,共通美的永恆

所有的工廠模式,最終會得到一個整體。
參考書籍: 《JavaScript 設計模式》張容銘
同時大家也可參考這位讀者的觀後感

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章