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

做网站做的/推广普通话的重要意义

做网站做的,推广普通话的重要意义,西安做网站价格,b2c网站后台标签: 设计模式 什么是装饰者模式? 装饰者模式,其中的重点自然就在“装饰”这两个字上面,在日常生活中很多东西都是需要装饰的,装饰的目的是为了原来的物品更加的好看,或者是加个装饰让物品更加实用&#x…

标签: 设计模式


什么是装饰者模式?

装饰者模式,其中的重点自然就在“装饰”这两个字上面,在日常生活中很多东西都是需要装饰的,装饰的目的是为了原来的物品更加的好看,或者是加个装饰让物品更加实用,装饰一般都能够为原来的物品添加一些新的功能,而添加的装饰在添加新的功能的时候也不会改变原来的物品。

那么在编程中的装饰其实和生活之中的装饰也是一个道理。所以装饰者模式的一个基本的原则就是在不改变对象自身的基础上,在程序运行期间给对象动态的添加职责,能够使得功能变得可插拔更加的灵活。

模拟传统面向对象语言的装饰者模式

下面通过一个简单的例子来体会一下装饰者模式:

假设现在我们在编写一个飞机大战的游戏,随着等级的上升我们的飞机功能不断的增强,一开始只能发射子弹,二级之后可以发射导弹了,三级之后可以发送原子弹了。

首先实现一个飞机类:

var Plane = function () {}
Plane.prototype.fire = function () {console.log('发射普通子弹')
}

接下来添加两个装饰类,分别实现发射原子弹和导弹:

var MissileDecorator = function (plane) {this.plane = plane
}
MissileDecorator.prototype.fire = function () {this.plane.fire()console.log('发射导弹')
}
var AtomDecorator = function (plane) {this.plane = plane
}
AtomDecorator.prototype.fire = function () {this.plane.fire()console.log('发射原子弹')
}

导弹类和原子弹类的构造函数都接受参数plane对象,并且保留这个参数,在执行他们自身的操作之外还执行plane的fire方法。

这样子每被装饰一次之后原来的类就新增了一个功能,而且原始的类也没有被改变。

使用:

var plane = new Plane();
plane = new MissileDecorator( plane );
plane = new AtomDecorator( plane );
plane.fire();
// 分别输出: 发射普通子弹、发射导弹、发射原子弹

装饰者也是包装容器

从上面的例子可以看到,每经过一次装饰就相当于在原来的类外部包装了一层对象,形成了一条包装链,请求随着这条包装链依次传递到所有的对象,每个对象都会有机会来处理这个请求。

作者简介:李成文,芦苇科技web前端开发工程师,擅长网站建设、公众号开发、微信小程序开发、小游戏、公众号开发,专注于前端领域框架、交互设计、图像绘制、数据分析等研究,访问 www.talkmoney.cn 了解更多。
http://www.lbrq.cn/news/1452745.html

相关文章:

  • 新公司做网站怎么弄/营销活动策划
  • 蓟州农家院如何做网站/阿里云域名注册网站
  • 网站托管服务器/今日新闻摘抄二十条
  • 自己做网站原始代码/2345网址导航桌面版
  • 网站建设费能不能认定为广告费/搜索引擎seo如何赚钱
  • 游戏开发网/厦门谷歌seo公司
  • 政府机关单位网站建设方案/如何快速提升网站关键词排名
  • 用国外网站 图片做自媒体/专业培训seo的机构
  • 工商局网站建设查不到/小型项目外包网站
  • 学计算机网站建设/小红书外链管家
  • 广西贺州建设局网站/哈尔滨网络seo公司
  • 营销型网站建设网站建设制作/百度手机助手下载安装最新版
  • 哪个网站做漂流瓶任务/seo教程技术整站优化
  • 网站鼠标悬停动态效果代码/怎么做游戏推广员
  • 网站建设比较合理的流程/深圳关键词推广排名
  • 广州网站推广哪家好/百度网站推广怎么做
  • 茂名网站制作网页/网络平台有哪些?
  • ic外贸网站建设/百家号优化
  • 网站建设怎么添加图片上去/成都网站快速排名
  • 国外文件传输网站/网址缩短在线生成器
  • 可以建网站的软件/网页设计基础
  • 网站建设内容清单/营销网络推广哪家好
  • 怎样做一个免费的网站/内容营销策略
  • 中专网站建设与数据管理是什么/福州seo推广公司
  • 永泰县网站集约化建设/bt磁力在线种子搜索神器下载
  • 做网站要多少的服务器/网页推广怎么做的
  • 如何做镜像别人网站/php视频转码
  • 代做备案网站/百度搜索排名优化哪家好
  • 深圳网站建设机构/百度客服电话人工服务热线
  • 电子商务公司建设网站方案/互联网营销师培训多少钱
  • 机器学习(13):逻辑回归
  • Ethereum:智能合约开发者的“瑞士军刀”OpenZeppelin
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • Socket编程——TCP协议
  • 算法讲解--最大连续1的个数
  • RSA 解密逻辑