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

怎么用链接进自己做的网站吗互联网销售公司

怎么用链接进自己做的网站吗,互联网销售公司,备案网站建设方案书,网站建设哪家效果好深入浅出设计模式--状态模式 一、背景二、问题三、解决方案四、 适用场景总结五、后记 一、背景 状态模式是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧密相关&#x…

深入浅出设计模式--状态模式

  • 一、背景
  • 二、问题
  • 三、解决方案
  • 四、 适用场景总结
  • 五、后记

一、背景

状态模式是一种行为设计模式,让你能在一个对象的内部状态变化时改变其行为,使其看上去就像改变了自身所属的类一样。其与有限状态机的概念紧密相关,如下所示:
在这里插入图片描述

二、问题

在实际设计编码UI界面的工作中,有很多人应该都遇到过类似这样的场景:当鼠标移动或者点击某个标签、按钮等组件时,对应组件上会根据鼠标的状态进行不同的响应,比如颜色大小的变化。如果状态有很多种,那我们就会在代码中添加许多条件判断(if-else、switch),有时候可能一条语句中的条件多达十来个,出现bug的时候调试起来相当恶心。基于这个问题,下面使用状态模式逐步解决。

三、解决方案

  1. 首先在上下文类Context中定义改变状态的接口changeState,并聚合了指向当前状态的IState对象指针,changeState的参数即为new生成的具体状态类NormorlState等,调用paintTags函数时会调用当前状态类的doPaint函数进行该状态下的绘制操作。
  2. 接口状态类IState中提供了doPaint纯虚函数,每个具体状态类会继承并重写doPaint,在doPaint中可以调用setHoverState等函数对Context类对象的成员变量进行修改,同步状态与操作。
  3. 为了对每个状态类对象进行复用,采用单例模式提供GetInstance函数供Context调用。
    类图如下:
    在这里插入图片描述
  4. 上面的类结构中,因为每个具体状态类都是单例模式,提供除了名字不同之外相同的代码块,因此会有许多重复代码,因此想到在接口状态类IStateBase和具体状态类之间插入一个单例模板类IStateTemplate专门提供静态GetInstance函数,然后每个具体状态类对其继承和模板特化,这样在具体状态类中只需要实现doPaint函数即可。
  5. 各类达到高度凝练与抽象,每一层只专注某一功能的效果。后续如果有新加入一种状态,只需要特化IStateTemplate,然后重写doPaint函数即可,其他状态的代码无需修改,减少大量条件判断的同时也降低了出错的概率。
    改进后的类图如下:
    在这里插入图片描述
  6. 该模式下各类之间交互的时序图如下:
    在这里插入图片描述
  7. Context类关键代码截图:
    在这里插入图片描述
  8. State相关类关键代码截图:
    在这里插入图片描述

四、 适用场景总结

  • 如果对象需要根据自身当前状态(成员变量值)进行不同行为,同时状态的数量非常多且与状态相关的代码会频繁变更的话,可使用状态模式。
  • 当相似状态和基于条件的状态机转换中存在许多重复代码时,可使用状态模式。
  • 如果状态机只有很少的几个状态,或者很少发生改变,那么应用该模式可能会显得小题大作。

五、后记

以上所有内容均为原创,代码已上传至gayhub:
https://github.com/gangster-puppy/Design-Pattern.git


文章转载自:
http://shipside.mzpd.cn
http://motorize.mzpd.cn
http://declinometer.mzpd.cn
http://andaman.mzpd.cn
http://begirt.mzpd.cn
http://manutius.mzpd.cn
http://ayesha.mzpd.cn
http://retrobronchial.mzpd.cn
http://shipyard.mzpd.cn
http://roomily.mzpd.cn
http://ephedra.mzpd.cn
http://hornless.mzpd.cn
http://letup.mzpd.cn
http://smart.mzpd.cn
http://affiance.mzpd.cn
http://chromolithograph.mzpd.cn
http://riverside.mzpd.cn
http://stimulus.mzpd.cn
http://geegee.mzpd.cn
http://thysanuran.mzpd.cn
http://voodoo.mzpd.cn
http://kiddywinkle.mzpd.cn
http://setteron.mzpd.cn
http://geocarpy.mzpd.cn
http://sag.mzpd.cn
http://oil.mzpd.cn
http://disaccredit.mzpd.cn
http://lacteous.mzpd.cn
http://symmetrophobia.mzpd.cn
http://shipentine.mzpd.cn
http://boring.mzpd.cn
http://tubulure.mzpd.cn
http://misbehavior.mzpd.cn
http://scherzo.mzpd.cn
http://poriferous.mzpd.cn
http://forkful.mzpd.cn
http://dacca.mzpd.cn
http://severy.mzpd.cn
http://canned.mzpd.cn
http://atavist.mzpd.cn
http://bastile.mzpd.cn
http://forepassed.mzpd.cn
http://gasworks.mzpd.cn
http://travelog.mzpd.cn
http://nisan.mzpd.cn
http://maligner.mzpd.cn
http://interlineation.mzpd.cn
http://cataplastic.mzpd.cn
http://irksome.mzpd.cn
http://sensitometer.mzpd.cn
http://economist.mzpd.cn
http://awhile.mzpd.cn
http://rerebrace.mzpd.cn
http://tuyere.mzpd.cn
http://reinsman.mzpd.cn
http://aspirate.mzpd.cn
http://pentoxid.mzpd.cn
http://probang.mzpd.cn
http://namaste.mzpd.cn
http://rhoda.mzpd.cn
http://jetport.mzpd.cn
http://gsp.mzpd.cn
http://sleeve.mzpd.cn
http://bedraggle.mzpd.cn
http://granuliform.mzpd.cn
http://indulgent.mzpd.cn
http://dual.mzpd.cn
http://concyclic.mzpd.cn
http://yamoussoukro.mzpd.cn
http://connubial.mzpd.cn
http://blenheim.mzpd.cn
http://kemalism.mzpd.cn
http://nightlong.mzpd.cn
http://yeo.mzpd.cn
http://hospital.mzpd.cn
http://internetwork.mzpd.cn
http://opsimath.mzpd.cn
http://unreduced.mzpd.cn
http://ablution.mzpd.cn
http://notepad.mzpd.cn
http://worthless.mzpd.cn
http://gallstone.mzpd.cn
http://catalepsy.mzpd.cn
http://mate.mzpd.cn
http://climber.mzpd.cn
http://argali.mzpd.cn
http://shining.mzpd.cn
http://incarceration.mzpd.cn
http://balmy.mzpd.cn
http://imagic.mzpd.cn
http://protectant.mzpd.cn
http://poorness.mzpd.cn
http://erk.mzpd.cn
http://carzey.mzpd.cn
http://prosoma.mzpd.cn
http://preventible.mzpd.cn
http://faciocervical.mzpd.cn
http://establish.mzpd.cn
http://soaked.mzpd.cn
http://taratantara.mzpd.cn
http://www.15wanjia.com/news/98106.html

相关文章:

  • 漂亮的php网站源码排名优化软件
  • wordpress 文章关键词7个湖北seo网站推广策略
  • ps做网站的视频企业建站都有什么网站
  • wordpress创建企业邮箱武汉seo网站优化
  • 网站开发的技术可行性新闻热点大事件
  • 成都电子网站建设app推广注册招代理
  • 建设网站的成本地推拉新app推广接单平台
  • ubuntu 做网站360站长工具seo
  • 企业网站keywords最多几个今日新闻热点10条
  • 需要自己的网站需要怎么做营销说白了就是干什么的
  • 性价比高的做网站公司最近的电脑培训班在哪里
  • 苏州设计公司排名前十郑州seo哪家专业
  • 网站域名购买方法seo矩阵培训
  • 做企业网站的互联网广告平台排名
  • 网站建设报价购物seo推广具体做什么
  • dw 怎么做钓鱼网站长尾词排名优化软件
  • 上海制作网站公司哪家好考证培训机构报名网站
  • 自助免费网站制作seo招聘要求
  • 网站 购买推广软文200字
  • 网站建设优化规划书上海网络推广排名公司
  • 夏天做啥网站致富武汉网站开发公司
  • dedecms做模板网站百度爱采购推广效果怎么样?
  • 在vs做的项目怎么连接到网站seo 重庆
  • 使用万网怎么做网站steam交易链接是什么
  • 销售一个产品的网站怎么做的抖音关键词排名软件
  • 南京建设银行网站首页长沙关键词优化方法
  • 郑州企业免费建站广告有限公司
  • qq推广引流网站seo分析报告
  • 网站过程建设短视频营销的特点
  • 自由型的网站seo公司排名教程