第六章(1)创建者

工厂模式特点,就是创建的结果都是一个完整的个体,我们对创建过程不得而知,我们只了解得到的创建结果对象。而在建造者模式中我们关心的是对象创建过程,因此我们通常将创建对象的类模块化,这样使被创建的类的每一个模块都可以得到灵活的运用与高质量的复用。当然我们最终的需求是要得到一个完整的个体,
因此在拆分创建的整个过程,我们将得到一个统一的结果。当然这种方式对于整体对象类的拆分无形中增加了结构的复杂性,因此如果对象粒度很小,或者模块间的复用率很低并且变动不大,我们最好还是要创建整体对象。

varHuman=function(param) {

this.skill= param && param.skill||'保密';

this.hobby= param && param.hobby||'保密';

}

Human.prototype={

getskill:function() {

return this.skill;

},

getHobby:function() {

return this.hobby;

},

}

//实例化姓名类

varNamed=function(name) {

varthat=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);

}

varWork=function(work) {

varthat=this;

(function(work,that) {

switch(work){

case'code':

that.work='工程师';

that.workDescript='每天沉醉于编程';

break;

case'UI':

case'US':

that.workDescript='设计更似—种艺术';

}

})(work,that)

}

Work.prototype.changeWork=function(work) {

this.work=work

}

Work.prototype.changeDescript=function(setence){

this.workDescript= setence;

}

/***

*应聘者建造者

*参数name:姓名(全名)

*参数work:期望职位

**/

varPerson=function(name,work,param) {

var_person=newHuman(param);

_person.name=newNamed(name);

_person.work=newWork(work);

return_person;

}

varperson=newPerson('xiao ming','code',{skill:"吃吃吃"});

console.log(person.skill);

console.log(person.name.FirstName);

console.log(person.work.work);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,288评论 25 709
  • 接触前端两三个月的时候,那时候只是听说设计模式很重要,然后我就去读了一本设计模式的书,读了一部分,也不知道这些设计...
    艰苦奋斗的侯小憨阅读 3,121评论 2 39
  • 手机被偷,看着监控我恨不得把小偷千刀万剐。里面还有下午给郑儿拍的许多照片,很多精彩的瞬间,珍贵的回忆掉了就找不回来...
    简宁思静阅读 91评论 0 0
  • “#本文参加‘青春’大赛,本人保证本文为本人原创,如有问题则与主办方无关,自愿放弃评优评奖资格” 作者:曹淦 学校...
    CG111阅读 542评论 0 0
  • 德鲁克研究管理的一个主要目的是要创建具有高绩效精神的组织。所有的组织都是从同样的人才资源里挑选员工,他们聘用的是平...
    4af85c91ffc8阅读 806评论 0 1