做阿里巴巴网站图片尺寸,ui设计是什么需要美术功底吗,网站开发常用软件是什么,网上怎么报警备案工厂模式不关心过程#xff0c;只关心结果#xff0c;这与建造者相反#xff0c;建造者更关心的是过程#xff0c;
这里我们创建一个基类#xff0c;其拥有技能跟爱好两个属性#xff0c;还有两个实例方法用来获取技能跟爱好
// 基类
let Human function (param {}) …工厂模式不关心过程只关心结果这与建造者相反建造者更关心的是过程
这里我们创建一个基类其拥有技能跟爱好两个属性还有两个实例方法用来获取技能跟爱好
// 基类
let Human function (param {}) {this.skill param.skill || 保密this. Hobby param.hobby || 无
}
// 基类原型
Human.prototype {getSkill() {return this.skill},getHobby() {return this. Hobby}
}
接下来创建一个姓名类及工作类 let Named function (name ) {let _this this(function (name, self) {self.name nameif (name.indexOf( ) ! -1) {self.firstName name.slice(0, name.indexOf( ))self.lastName name.slice(name.indexOf( ))}})(name, _this)
}let Work function (work ) {let _this this(function (work, self) {self.work workswitch (work) {case code:self.work 工程师self.description 每天沉醉于编程的工程师breakcase UI:case UE:self.work 设计师self.description UI和UE的设计breakdefault:self.work workself.desc unknown}})(work, _this)
}Work.prototype.changeWork (work) {this.work work
}
Work.prototype.changeDescription (description) {this.description description
}
这样我们就得到了姓名跟工作的类再来创造一个应聘者
/* 构建者* param {string} name 姓名* param {string} work 工作*/
let Person function (name, work) {let _person new Human()_person.name new Named(name)_person.work new Work(work)return _person
}// 这样使用
let person new Person(于光豪, code)
console.log(person.work.description) // 每天沉醉于编程的工程师
person.work.changeDescription(不要想着工程师很轻松)
console.log(person.work.description) // 不要想着工程师很轻松
console.log(person.name.name) // 于光豪
由此可以看出在构建者中创建者不单单是在乎结果更关注过程构建的对象来说更为复杂工作通过 Switch 来区分不同的工作种类对于不同的职位进行不同的操作。不过针对工厂模式来说构建者的确更明确一些它将所有功能等都逐一分开每个都独立再通过一个构建者将所有的基层都融合在一起Person构建者融合了 Human、Named、Work类似与搭建积木一层一层的构建起来组合成一个模型