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

塘沽集团网站建设/郑州手机网站建设

塘沽集团网站建设,郑州手机网站建设,天津市建设局网站,网页制作与网站建设的发展趋势设想工厂模式简述 工厂模式,顾名思义,就是为了创造对象。 工厂模式类似于现实的工厂生产线,可以生产出大量类似的商品。 工厂模式可以分为简单工厂模式跟复杂工厂模式。以下将详细介绍。 简单工厂模式 先来看一个例子~~~ function CarFactory (br…

工厂模式简述

工厂模式,顾名思义,就是为了创造对象。

工厂模式类似于现实的工厂生产线,可以生产出大量类似的商品。

工厂模式可以分为简单工厂模式跟复杂工厂模式。以下将详细介绍。

简单工厂模式

先来看一个例子~~~

        function CarFactory (brand, price) {var car = new Object();car.brand = brand;car.price = price;car.getPrice = function () {return this.price;}return car;}var car1 = CarFactory("牌子A", 10000);var car2 = CarFactory("牌子B", 20000);console.log(JSON.stringify(car1)); // {"brand":"牌子A","price":10000}console.log(JSON.stringify(car2)); // {"brand":"牌子B","price":20000}console.log(typeof car1); // objectconsole.log(typeof car2); // objectconsole.log(car1 instanceof Object); // true
复制代码

如上代码:函数CarFactory接受两个参数brand, price,最终返回一个对象。如果多次调用这个函数,每次将返回一个新的对象,这就跟工厂的生产线一样。

简单工厂模式的优点在于:能解决多个相似的问题,减少大量冗余代码。

当然,简单工厂模式的缺点也很突出:即无法识别对象类型(typeof car1 === 'object')

为了解决简单工厂模式无法识别对象类型的问题,复杂工厂模式便登场了~~~

复杂工厂模式

再看一个例子~~~

        function ComplexCarFactory(brand, price) {this.brand = brand;this.price = price;}ComplexCarFactory.prototype = {constructor: ComplexCarFactory,sellCar: function(){var speed = this.getSpeed(this.brand);console.log(this.brand + '的车子售价:' + this.price + '元人民币,限速' + speed + '公里每小时');},getSpeed : function(brand){throw new Error("父类是抽象类不能直接调用,需要子类重写该方法");}};var CarChild = function(brand, price) {this.brand = brand;this.price = price;// 继承构造函数父类中的属性和方法ComplexCarFactory.call(this, brand, price);};// 子类继承父类原型方法CarChild.prototype = Object.create(ComplexCarFactory.prototype);// CarChild 子类重写父类的方法CarChild.prototype.getSpeed = function(brand){var speed = null;if(brand === '牌子C'){return 100;}return 50;}var car3 = new CarChild("牌子C", 3000);console.log(car3); // CarChild {brand: "牌子C", price: 3000}console.log(car3.sellCar()); // 牌子C的车子售价:3000元人民币,限速50公里每小时
复制代码

如上代码:

ComplexCarFactory为父类,CarChild为子类,CarChild继承自ComplexCarFactory。

ComplexCarFactory不在进行对象实例化,只对创建过程中的一般性问题进行处理,ComplexCarFactory就像是Java中的抽象类,必须被子类重写,否则调用ComplexCarFactory的sellCall方法时就会抛出异常。

CarChild继承自ComplexCarFactory,同时重写了父类的方法,CarChild类实例后的对象之间是相互独立的,具体的业务逻辑会放在子类中进行编写。

总结

工厂模式最重要的优点是:可以在父类实现一些相同的方法,而具体要实现的业务逻辑可以放在子类中,通过子类重写父类的方法,去实现自己的业务逻辑。

工厂模式弱化对象间的耦合,父类专注于实现重复性的功能,子类专注于具体的业务逻辑,这样可以减少冗余代码。

http://www.lbrq.cn/news/1077607.html

相关文章:

  • pc28预测网站多少做/产品宣传方案
  • 网站建设企业网站界面设计/昆明百度推广优化
  • 电脑做ppt如何插入网站/推广普通话文字内容
  • mvc5 网站开发之美/网站建设公司哪家好?
  • wordpress建站图片效果/磁力蜘蛛
  • 党支部建设网站/软文广告属于什么营销
  • 武汉建网公司网站建设/网站建设公司
  • 做网站价格差异很大/百度推广客户端怎么登陆
  • 腾讯做电脑吃鸡网站/注册网站流程和费用
  • 人才网站/西地那非片的功能主治
  • 怎么把在EXCEL做的查询系统做到网站上/百度提交入口网址
  • 宁波网站建设 熊掌号/长沙网站建设
  • 网页美工设计公司/排名优化服务
  • 正规接单赚佣金的app/win7优化大师官网
  • wp网站开发/上海今天最新发布会
  • 天猫购物商城/徐州seo推广
  • asp网站建设实录pdf/百度站内搜索代码
  • 什么是大型门户网站/免费网站制作教程
  • 织梦的cms哪些网站/合肥seo优化公司
  • window2008 网站建设/seo网站营销推广公司
  • 多少钱翻译/北京排名seo
  • 企业网站改版seo/潮州网络推广
  • 在线教育网站建设方案/刷关键词怎么刷
  • 网站建设 风险/百度seo排名在线点击器
  • 网站申请名称/品牌策划公司排行榜
  • ui做网站实例/什么是搜索关键词
  • 政府网站 定制/搜索引擎优化的办法有哪些
  • 企业网站设计策划/做百度seo
  • php网站空间购买/品牌推广的意义
  • 电销系统开发/seo整站优化费用
  • ubuntu22.04系统入门 linux入门(二) 简单命令 多实践以及相关文件管理命令
  • 加密与安全
  • Java与Kotlin中“==“、“====“区别
  • 【n8n教程笔记——工作流Workflow】文本课程(第二阶段)——1 理解数据结构 (Understanding the data structure)
  • 数据库中使用SQL作分组处理01(简单分组)
  • 类与对象(上),咕咕咕