javascript设计模式--Builder
2016-04-23 12:35
711 查看
Builder:将一个复杂对象的构建层与其表示层相互分离,同样的构件过程可采用不同的表示.
使用方式
工厂模式创建的是一个对象,他追求的是创建的结果,别无他求,所以那仅仅是一个实实在在的创建过程.而建造者模式就有所不同,它不仅仅可得到创建的结果,然而也参与了创建的具体过程.而创建的具体实现的细节也参与了干涉,可以说创建的对象更复杂,或者所这种模式创建的是一个复合对象.
//创建一位人类 var Human = function(param){ //技能 this.skill = param && parma.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(' ')); } }) } //实例化职位类 var Work = function(work){ var that = this; //构造器 ... } //更新期望的职位 Work.prototype.changeWork = function(work){ this.work = work; } //添加对职位的描述
/*** *应聘者建造者 *参数 name *参数 work **/ var Person = function(name,work){ //创建应聘者缓存对象 var _person = new Human(); //创建应聘者姓名解析对象 _person.name = New Named(name); //创建应聘者期望职位 _person.work = new Work(work); //将创建者返回 return _person; }
使用方式
var person = new Person('xiao ming','code');
工厂模式创建的是一个对象,他追求的是创建的结果,别无他求,所以那仅仅是一个实实在在的创建过程.而建造者模式就有所不同,它不仅仅可得到创建的结果,然而也参与了创建的具体过程.而创建的具体实现的细节也参与了干涉,可以说创建的对象更复杂,或者所这种模式创建的是一个复合对象.
相关文章推荐
- 还原JavaScript的真实历史~
- JavaScript类型总览(图)
- javascript 传参练手
- JS百度分享栏
- 点滴收集JSP、HTML兼容头部信息,以及针对各种浏览器做相应嵌入兼容信息
- C# JSON格式化转换辅助类 ConvertJson
- jsp用静态指令<%=include file=""%>编码问题
- xutils +Gson解析json(从服务器中获取json并解析)
- javascript 页面关闭前提示确认
- JavaScript中的offsetParent属性
- js中的命名空间
- 运用正则做简单的表单验证(二)
- JavaScript Date.getTime() 函数详解
- javascript中 string的charAt()和charCodeAt()方法
- VS2013新建MVC5项目,使用nuget更新项目引用后发生Newtonsoft.Json引用冲突的解决办法
- 常用JS
- 盘点淘宝、腾讯、百度内部使用的JavaScript库
- js判断整数和正浮点数
- JS获取月的最后一天与JS得到一个月份最大天数
- JSP EL表达式