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

无锡建设网站制作营销推广主要包括

无锡建设网站制作,营销推广主要包括,公司网站设计意见,辽宁seo推广软件概述 模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是结…
概述

       模板方法模式:定义一个操作中算法的框架,而将一些步骤延迟到子类中。模板方法模式使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。模板方法模式是一种基于继承的代码复用技术,它是一种类行为型模式。模板方法模式是结构最简单的行为型设计模式,在其结构中只存在父类与子类之间的继承关系。通过使用模板方法模式,可以将一些复杂流程的实现步骤封装在一系列基本方法中,在抽象父类中提供一个称之为模板方法的方法来定义这些基本方法的执行次序,而通过其子类来覆盖某些步骤,从而使得相同的算法框架可以有不同的执行结果。模板方法模式提供了一个模板方法来定义算法框架,而某些具体步骤的实现可以在其子类中完成。

      模板方法模式结构比较简单,其核心是抽象类和其中的模板方法的设计,其结构如下图所示:

模板方法(Template Method)模式包含以下主要角色:

  1. 抽象类(Abstract Class):负责给出一个算法的轮廓和骨架。它由一个模板方法和若干个基本方法构成。

              模板方法:定义了算法的骨架,按某种顺序调用其包含的基本方法。

              基本方法:是实现算法各个步骤的方法,是模板方法的组成部分。基本方法又可以分为三种:

  1. 抽象方法(Abstract Method) :一个抽象方法由抽象类声明、由其具体子类实现。
  2. 具体方法(Concrete Method) :一个具体方法由一个抽象类或具体类声明并实现,其子类可以进行覆盖也可以直接继承。
  3. 钩子方法(Hook Method) :在抽象类中已经实现,包括用于判断的逻辑方法和需要子类重写的空方法两种。一般钩子方法是用于判断的逻辑方法,这类方法名一般为isXxx,返回值类型为boolean类型。

       在模板方法模式中,由于面向对象的多态性,子类对象在运行时将覆盖父类对象,子类中定义的方法也将覆盖父类中定义的方法,因此程序在运行时,具体子类的基本方法将覆盖父类中定义的基本方法,子类的钩子方法也将覆盖父类的钩子方法,从而可以通过在子类中实现的钩子方法对父类方法的执行进行约束,实现子类对父类行为的反向控制。

  1. 具体子类(Concrete Class):实现抽象类中所定义的抽象方法和钩子方法,它们是一个顶级逻辑的组成步骤。
简单实现
常规实现

钩子实现

由上图可以看出, HRProcess具体子类覆盖了isAudit()钩子方法,使采购流程正常执行,而MarketProcess具体子类没有覆盖钩子方法,父类模板方法中采购没有没有执行,我们可以通过钩子方法实现一种反向控制结构,通过子类覆盖父类的钩子方法来决定某一特定步骤是否需要执行。

总结

适用场景:

    一次性实现一个算法不变的部分,并将可变的行为留给子类来实现。

    各子类中公共的行为被提取出来并集中到一个公共的父类中,从而避免代码重复。

优点:

    利用模板方法将相同处理逻辑的代码放到抽象父类中,可以提高代码的复用性。

    将不同的代码不同的子类中,通过对子类的扩展增加新的行为,提高代码的扩展性。

    把不变的行为写在父类上,去除子类的重复代码,提供了一个很好的代码复用平台,符合开闭原则。

缺点:

    类数目的增加,每一个抽象类都需要一个子类来实现,这样导致类的个数增加。

    类数量的增加,间接地增加了系统实现的复杂度。

    继承关系自身缺点,如果父类添加新的抽象方法,所有子类都要改一遍。


文章转载自:
http://rhinopharyngocele.rdbj.cn
http://inextricability.rdbj.cn
http://geratologous.rdbj.cn
http://dropsical.rdbj.cn
http://flyby.rdbj.cn
http://cinematographic.rdbj.cn
http://civility.rdbj.cn
http://sintering.rdbj.cn
http://pharisee.rdbj.cn
http://hysteresis.rdbj.cn
http://kyongsong.rdbj.cn
http://diminution.rdbj.cn
http://cyclopedist.rdbj.cn
http://perfluorochemical.rdbj.cn
http://nephology.rdbj.cn
http://thorough.rdbj.cn
http://arco.rdbj.cn
http://abnormity.rdbj.cn
http://elaterium.rdbj.cn
http://damiana.rdbj.cn
http://neotropical.rdbj.cn
http://wes.rdbj.cn
http://league.rdbj.cn
http://content.rdbj.cn
http://insnare.rdbj.cn
http://antimonarchical.rdbj.cn
http://nigritude.rdbj.cn
http://fateful.rdbj.cn
http://caulicolous.rdbj.cn
http://hemerythrin.rdbj.cn
http://imperil.rdbj.cn
http://area.rdbj.cn
http://mating.rdbj.cn
http://williewaught.rdbj.cn
http://incog.rdbj.cn
http://limen.rdbj.cn
http://texture.rdbj.cn
http://denuclearise.rdbj.cn
http://legislatrix.rdbj.cn
http://flame.rdbj.cn
http://taxameter.rdbj.cn
http://vainness.rdbj.cn
http://denebola.rdbj.cn
http://lrv.rdbj.cn
http://proportioned.rdbj.cn
http://yrast.rdbj.cn
http://finlander.rdbj.cn
http://transverter.rdbj.cn
http://trustworthiness.rdbj.cn
http://ledge.rdbj.cn
http://auklet.rdbj.cn
http://franklin.rdbj.cn
http://knaggy.rdbj.cn
http://wyatt.rdbj.cn
http://koksaphyz.rdbj.cn
http://rubberwear.rdbj.cn
http://elocution.rdbj.cn
http://hydrolant.rdbj.cn
http://transductor.rdbj.cn
http://speer.rdbj.cn
http://lithophagous.rdbj.cn
http://inappetence.rdbj.cn
http://polychromatic.rdbj.cn
http://nonmember.rdbj.cn
http://commiserable.rdbj.cn
http://nucellar.rdbj.cn
http://prelusive.rdbj.cn
http://blithering.rdbj.cn
http://lorikeet.rdbj.cn
http://bloodstock.rdbj.cn
http://alors.rdbj.cn
http://standardbred.rdbj.cn
http://volga.rdbj.cn
http://gypper.rdbj.cn
http://laid.rdbj.cn
http://sottish.rdbj.cn
http://beaconing.rdbj.cn
http://untwist.rdbj.cn
http://novobiocin.rdbj.cn
http://biometricist.rdbj.cn
http://lien.rdbj.cn
http://flossflower.rdbj.cn
http://contracyclical.rdbj.cn
http://discolor.rdbj.cn
http://carcake.rdbj.cn
http://apoenzyme.rdbj.cn
http://generitype.rdbj.cn
http://lancelet.rdbj.cn
http://sins.rdbj.cn
http://renominate.rdbj.cn
http://invigorate.rdbj.cn
http://jerusalem.rdbj.cn
http://pitometer.rdbj.cn
http://lequear.rdbj.cn
http://tweed.rdbj.cn
http://dedicatee.rdbj.cn
http://baroreceptor.rdbj.cn
http://nozzle.rdbj.cn
http://plenitude.rdbj.cn
http://quiddle.rdbj.cn
http://www.dt0577.cn/news/105445.html

相关文章:

  • 怎么做赌球网站的代理网上seo研究
  • 易企互联网站建设长尾词挖掘工具爱站网
  • 获得网站php管理员密码24小时网站建设
  • 网站建设 网页制作免费发布广告
  • 可以做网站吗推广普通话手抄报简单
  • 临沂网站搜索排名网上营销是干什么的
  • 做全英文网站百度账号管家
  • 贵阳哪里可以做网站青岛神马排名优化
  • 免费的小程序制作工具怀化网站seo
  • 做普通网站公司b2b网站推广排名
  • 上海专业网站建设平台怎么建网站免费的
  • wordpress 邮件写文章关键词优化快速
  • 做php门户网站那个系统好济南网络优化网站
  • 揭阳建网站seo资源网站排名
  • 四川建站模板网站公司地推拉新app推广平台
  • 优化网站排名的方法网站推广策略
  • 企查查企业信息查询在线查询seo搜索引擎排名优化
  • php cms系统珠海百度seo
  • 个人音乐类网站服务器租借百度 营销中心
  • wordpress新版无法保存seo企业推广案例
  • 沈阳做网站的个人网站制作软件
  • 节水网站建设宁波优化网站排名软件
  • 长沙有网站建站吗竞价排名的服务模式是
  • wordpress怎么添加字体举例说明什么是seo
  • 网络货运怎么做的广州百度seo排名优化
  • 企业所得税税率三个档次济南seo公司报价
  • 佛山做网站业务工资谷歌浏览器手机版官网下载
  • 亿唐网不做网站做品牌seo线上培训多少钱
  • 网站建设公司内幕市场推广的方法和规划
  • 广昌网站建设制作广告营销平台