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

html5导航网站源码苏州建网站制作费用多少钱

html5导航网站源码,苏州建网站制作费用多少钱,做网站公司赚不赚钱,凡科网站做的好不好一、什么是装饰器模式 装饰器模式#xff08;Decorator Pattern#xff09;是一种结构型设计模式#xff0c;它的核心思想是在不改变原有对象结构的情况下#xff0c;动态地给对象增加一些功能#xff0c;从而达到扩展功能的目的。举个例子#xff0c;今天在家妈妈给蒸馒…一、什么是装饰器模式 装饰器模式Decorator Pattern是一种结构型设计模式它的核心思想是在不改变原有对象结构的情况下动态地给对象增加一些功能从而达到扩展功能的目的。举个例子今天在家妈妈给蒸馒头。馒头蒸的过程中妈妈去收拾衣服了。突然想起来馒头好了就跟你说“帮我把馒头拿出来。”这个时候馒头特别烫如果不烫其实用我们的手是可以拿出来的但是这个时候光用手拿不行。所以我们想了个办法找了一个手套从而把馒头拿了出来。这个过程就类似于装饰器模式手套相当于装饰器给手原有对象增加了隔热的功能使得手能够处理原本无法直接处理的烫馒头。 二、为什么使用装饰器模式 基于上面的馒头场景我们讨论一下为什么使用装饰器模式为什么要戴手套 动态扩展撤销功能当需要在运行时为对象动态添加功能时装饰器模式是一个很好的选择。例如比如应对热馒头去拿的时候要隔热功能不想隔热还可以直接上手。但是装饰的多了手不热吗手不累吗所示要适当添加。别为了拿馒头装了一堆东西反而得不偿失。 避免子类爆炸如果通过继承来扩展功能可能会导致子类数量急剧增加使得系统变得复杂且难以维护。装饰器模式可以避免这种情况通过组合的方式动态添加功能继承关系的替代。 保持原有接口不变装饰器模式可以在不改变原有对象接口的情况下增加新的功能这使得客户端代码可以透明地使用被装饰的对象而不需要修改客户端代码。拿馒头的手拿的功能不变 三、装饰器模式示例 Component抽象组件定义了被装饰对象的接口所有具体的组件和装饰器都实现这个接口。 //我就是一个手人们定义我叫手收能拿东西 public interface Hand {void pickUp(Object object) throws Exception; } ConcreteComponent具体组件实现了Component接口的具体组件是被装饰的对象。 //我是一个赤裸裸真是长在身上的手人们说手可以拿东西我也可以 public class BareHand implements Hand {Overridepublic void pickUp(Object object) throws Exception {if (object instanceof HotBun) {throw new Exception(我擦太热了!);}System.out.println(Picked up object.getClass().getSimpleName() with bare hands.);} } Decorator装饰器抽象类也实现了Component接口持有一个Component对象的引用通过组合的方式动态地为Component对象添加新的功能。 //其实手上没准可以加点东西 public abstract class HandDecorator implements Hand {protected Hand hand;public HandDecorator(Hand hand) {this.hand hand;}Overridepublic void pickUp(Object object) throws Exception {hand.pickUp(object);} } ConcreteDecorator具体装饰器实现了Decorator的具体装饰器负责给Component对象添加具体的装饰功能。 //我是手套 public class GloveDecorator extends HandDecorator {public GloveDecorator(Hand hand) {super(hand);}Overridepublic void pickUp(Object object) throws Exception {System.out.println(戴上手套去拿 object.getClass().getSimpleName());hand.pickUp(object);} } 客户端 //我是一个热馒头 public class HotBun {// 烫馒头的具体实现 } public class Main {public static void main(String[] args) {Hand bareHand new BareHand();try {bareHand.pickUp(new HotBun());} catch (Exception e) {System.out.println(e.getMessage());}// 使用手套装饰手Hand glovedHand new GloveDecorator(bareHand);try {glovedHand.pickUp(new HotBun());} catch (Exception e) {System.out.println(e.getMessage());}} }//输出 我擦太热了! 戴上手套去拿热馒头 我擦太热了!
http://www.dnsts.com.cn/news/65653.html

相关文章:

  • 网站建设工作分解结构词典网页升级访问中新每天正常更新中
  • 做网站网页的人是不是思维贵港网站seo
  • 小说网站的网编具体做哪些工作自己建立网站怎么搞
  • iis配置网站权限wordpress更换图片地址
  • 西安电商网站制作电子商务网站建设与管理教案
  • 构建网站空间图书网站建设
  • 如何做网站卖商品的网站河南男科医院排名榜
  • 表白网站制作器网络推广专员百度百聘
  • 自己做一个模版网站是怎么做的福州企业建站软件
  • 专业网站公众号编辑器365
  • 苏州找网络公司建网站教用vs2013做网站的书
  • 洛阳市政建设网站百度高级检索入口
  • 惠州网站建设效果公司网站 seo
  • 如何编写网站后台程序如何外贸推广
  • 建站好的公司郑州网站制作价格
  • 网站后台上传图片做难吗?创业网站开发
  • 哈尔滨专业网站建设wordpress 权限 插件
  • 怎样找回网站备案密码错误长沙市网站建设推广
  • 做网站的5要素设置 iis 网站维护中
  • 网站建设公司介绍ppt自己免费做网站(三)
  • 齐齐哈尔北京网站建设官方微网站吗
  • 医疗企业网站模板外贸论坛怎么推广
  • 甘肃省建设厅执业资格注册网站微信里借钱的小程序
  • 西安网站运营招聘电子商务网站建设的试卷
  • 响应式网站建设推广关于企业网站建设的必要性
  • 建设银行大冶支行网站网站建设费可以抵扣吗
  • 无忧自助建站页面设计的线条
  • 网站设计公司西安手机wap网站建设解决方案
  • 泰安集团网站建设多少钱软件工程最好的出路
  • 腾讯企业邮箱域名可以做网站吗遵义百度推广公司