当前位置: 首页 > news >正文

企业网站建设公司有哪些贵阳网站建设设计

企业网站建设公司有哪些,贵阳网站建设设计,wordpress 域名迁移,群晖的网站开发定义 工厂模式是用来创建对象的一种最常用的设计模式#xff0c;不暴露创建对象的具体逻辑#xff0c;而是将将逻辑封装在一个函数中#xff0c;那么这个函数就可以被视为一个工厂 其就像工厂一样重复的产生类似的产品#xff0c;工厂模式只需要我们传入正确的参数#…定义 工厂模式是用来创建对象的一种最常用的设计模式不暴露创建对象的具体逻辑而是将将逻辑封装在一个函数中那么这个函数就可以被视为一个工厂 其就像工厂一样重复的产生类似的产品工厂模式只需要我们传入正确的参数就能生产类似的产品 举个例子 编程中在一个 A 类中通过 new 的方式实例化了类 B那么 A 类和 B 类之间就存在关联耦合后期因为需要修改了 B 类的代码和使用方式比如构造函数中传入参数那么 A 类也要跟着修改一个类的依赖可能影响不大但若有多个类依赖了 B 类那么这个工作量将会相当的大容易出现修改错误也会产生很多的重复代码这无疑是件非常痛苦的事这种情况下就需要将创建实例的工作从调用方A类中分离与调用方解耦也就是使用工厂方法创建实例的工作封装起来减少代码重复由工厂管理对象的创建逻辑调用方不需要知道具体的创建过程只管使用而降低调用者因为创建逻辑导致的错误 再比如 一个产品 调用数据库根据量级或者需求等不同的因素我们需要让产品切换调用到不同的数据库中 oracle sqlserver mysql - DB层根据逻辑或者标识能切换连接的数据库 分类 1、简单工厂模式 简单工厂模式也叫静态工厂模式用一个工厂对象创建同一类对象类的实例 假设我们要开发一个公司岗位及其工作内容的录入信息不同岗位的工作内容不一致,我们只需要传递不同的参数既可以获取不同的实例。 function Factory(career) {function User(career, work) {this.career career this.work work}let workswitch(career) {case coder:work [写代码, 修Bug] return new User(career, work)breakcase hr:work [招聘, 员工信息管理]return new User(career, work)breakcase driver:work [开车]return new User(career, work)breakcase boss:work [喝茶, 开会, 审批文件]return new User(career, work)break} } let coder new Factory(coder) console.log(coder) let boss new Factory(boss) console.log(boss)2、工厂方法模式 工厂方法模式跟简单工厂模式差不多但是把具体的产品放到了工厂函数的prototype中 这样一来扩展产品种类就不必修改工厂函数了核心类就变成抽象类也可以随时重写某种具体的产品 也就是相当于工厂总部不生产产品了交给下辖分工厂进行生产但是进入工厂之前需要有个判断来验证你要生产的东西是否是属于我们工厂所生产范围如果是就丢给下辖工厂来进行生产 // 工厂方法 function Factory(career){if(this instanceof Factory){var a new this[career]();return a;}else{return new Factory(career);} } // 工厂方法函数的原型中设置所有对象的构造函数 Factory.prototype{coder: function(){this.careerName 程序员this.work [写代码, 修Bug] },hr: function(){this.careerName HRthis.work [招聘, 员工信息管理]},driver: function () {this.careerName 司机this.work [开车]},boss: function(){this.careerName 老板this.work [喝茶, 开会, 审批文件]} } let coder new Factory(coder) console.log(coder) let hr new Factory(hr) console.log(hr)3、抽象工厂模式 上述简单工厂模式和工厂方法模式都是直接生成实例但是抽象工厂模式不同抽象工厂模式并不直接生成实例 而是用于对产品类簇的创建 通俗点来讲就是简单工厂和工厂方法模式的工作是生产产品那么抽象工厂模式的工作就是生产工厂的 由于JavaScript中并没有抽象类的概念只能模拟可以分成四部分 用于创建抽象类的函数抽象类具体类实例化具体类 上面的例子中有coder、hr、boss、driver四种岗位其中coder可能使用不同的开发语言进行开发比如JavaScript、Java等等。那么这两种语言就是对应的类簇 let CareerAbstractFactory function(subType, superType) {// 判断抽象工厂中是否有该抽象类if (typeof CareerAbstractFactory[superType] function) {// 缓存类function F() {}// 继承父类属性和方法F.prototype new CareerAbstractFactory[superType]()// 将子类的constructor指向父类subType.constructor subType;// 子类原型继承父类subType.prototype new F()} else {throw new Error(抽象类不存在)} }CareerAbstractFactory就是一个抽象工厂方法该方法在参数中传递子类和父类在方法体内部实现了子类对父类的继承 使用 从上面可看到简单简单工厂的优点就是我们只要传递正确的参数就能获得所需的对象而不需要关心其创建的具体细节 应用场景也容易识别有构造函数的地方就应该考虑简单工厂但是如果函数构建函数太多与复杂会导致工厂函数变得复杂所以不适合复杂的情况 抽象工厂模式一般用于严格要求以面向对象思想进行开发的超大型项目中我们一般常规的开发的话一般就是简单工厂和工厂方法模式会用的比较多一些 综上工厂模式适用场景如下 如果你不想让某个子系统与较大的那个对象之间形成强耦合而是想运行时从许多子系统中进行挑选的话那么工厂模式是一个理想的选择将new操作简单封装遇到new的时候就应该考虑是否用工厂模式需要依赖具体环境创建不同实例这些实例都有相同的行为,这时候我们可以使用工厂模式简化实现的过程同时也可以减少每种对象所需的代码量有利于消除对象间的耦合提供更大的灵活性
http://www.tj-hxxt.cn/news/131908.html

相关文章:

  • 福州帮人建网站公司太原网络项目
  • 做教育的网站南宁怎么做seo团队
  • 企业网站诊断公司中英文网站
  • 河南省住房和城乡建设厅网站文件wordpress 目录插件
  • 织梦免费自适应网站模板建筑公司企业愿景范文简短
  • 义乌城市投资建设集团网站常用网站字体
  • 湖北专业网站建设维修电话英文网站建设技术
  • 那种投票网站里面怎么做网站怎么做评估
  • 创建一个网站需要怎么做wordpress大前端整站
  • 淘宝网站可以做seo吗微信申请小程序流程
  • 怎样注册公司网站建立网页网站建设教程书籍
  • WordPress修改网站背景推广运营公司哪家好
  • 如何建立一个企业的网站网站建设分录怎么开
  • 单位建设网站申请信用卡吗小榄镇做网站公司
  • 西安做网站的在哪免费搭建网站模板
  • 建设银行网站维修图片厦门人才网官网招聘信息网
  • 网站有死链接怎么办一级域名和二级域名做两个网站
  • 网站开发asp 视频教程做学校网站素材图片大全
  • 如何免费制作网站短视频优化
  • 婚恋网站女孩子做美容网站后台登陆密码破解
  • 做a免费网站html5个人网页完整代码
  • 网站开发收费沈阳网站制作
  • 如何做网页或网站怎么制作一张自己的图片
  • 上海大 小企业网站制作文章标签 wordpress
  • 城建设投资公司网站花都网站建设网页设计
  • jquery 单页网站百度置顶广告多少钱
  • 常见的网站推广方案优秀作文网站都有哪些
  • 低价网站建设要多少钱企业信息公示管理系统
  • 高级网站开发技术爱给网官网免费素材
  • 黑马网站建设网站设计wordpress多站点 缺点