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

品牌建设 网站赚钱软件

品牌建设 网站,赚钱软件,如何做淘外网站推广,网站开发用什么浏览器测试场景 模板模式 模板模式又叫模板方法模式(Template Method Pattern),是指定义一个算法的骨架,并允许子类为一个 或者多个步骤提供实现。 模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。 模…

场景

模板模式

模板模式又叫模板方法模式(Template Method Pattern),是指定义一个算法的骨架,并允许子类为一个

或者多个步骤提供实现。

模板模式使得子类可以在不改变算法结构的情况下,重新定义算法的某些步骤,属于行为型设计模式。

模板模式适用于以下场景:

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

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

以网络销售商品为例,模板流程大体为:

上架商品-下订单-发快递-收货 ,如果需要退货还需进行退货流程。

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

模板模式示例

首先创建NetworkGoods抽象类

package com.ruoyi.demo.designPattern.templatePattern;public abstract class NetworkGoods {protected final void saleGoods(){//上架商品this.groundGoods();//下订单this.placeOrder();//发快递this.express();//收货this.receipt();//是否需要退货if(needReturnGoods()){doReturnGoods();}}//进行退货abstract void doReturnGoods();//是否需要退货//钩子方法:实现流程的微调protected  boolean  needReturnGoods(){return false;}//上架商品final void groundGoods(){System.out.println("上架商品");}//下订单final void placeOrder(){System.out.println("下订单");}//发快递final void express(){System.out.println("发快递");}//收货final void receipt(){System.out.println("收货");}
}

上面代码中有个钩子方法,主要目的是干预执行流程,使得控制行为更加灵活,更符合实际业务的需求。

然后创建ComputerGoodsSale

package com.ruoyi.demo.designPattern.templatePattern;public class ComputerGoodsSale extends NetworkGoods{@Overridevoid doReturnGoods() {System.out.println("电脑进行退货");}
}

创建BookGoodsSale

package com.ruoyi.demo.designPattern.templatePattern;public class BookGoodsSale extends NetworkGoods{private boolean needReturnGoodsFlag = false;public BookGoodsSale(boolean needReturnGoodsFlag){this.needReturnGoodsFlag = needReturnGoodsFlag;}@Overrideprotected boolean needReturnGoods() {return this.needReturnGoodsFlag;}@Overridevoid doReturnGoods() {System.out.println("书籍进行退货");}
}

客户端测试代码

package com.ruoyi.demo.designPattern.templatePattern;public class networkGoodsSaleTest {public static void main(String[] args) {System.out.println("电脑进行网络销售");NetworkGoods computerGoods = new ComputerGoodsSale();computerGoods.saleGoods();System.out.println("书籍进行网络销售");NetworkGoods bookGoods = new BookGoodsSale(true);bookGoods.saleGoods();}
}

模板模式的经典应用场景-JdbcTemplate

创建模板类JdbcTemplate,封装所有的JDBC操作。以查询为例,每次查询的表不同,返回的

数据结构也不一样。针对不同的数据,都要将其封装成不同的实体对象。而每个实体对象的发封装

逻辑是不一样的,但是封装前和封装后的流程是不变的。

模板模式的优缺点

优点:

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

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

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

缺点:

1、每个抽象类都需要一个子类来实现,导致了类的数量增加。

2、类数量的增加间接地增加了系统的复杂性。

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


文章转载自:
http://uncalculating.yzkf.cn
http://yaff.yzkf.cn
http://nonprescription.yzkf.cn
http://excide.yzkf.cn
http://dominative.yzkf.cn
http://technicolor.yzkf.cn
http://dageraad.yzkf.cn
http://paramour.yzkf.cn
http://apagogical.yzkf.cn
http://chicalote.yzkf.cn
http://outweep.yzkf.cn
http://curietherapy.yzkf.cn
http://taedong.yzkf.cn
http://vibrancy.yzkf.cn
http://solubilizer.yzkf.cn
http://tritoma.yzkf.cn
http://dermatologist.yzkf.cn
http://cofacter.yzkf.cn
http://crete.yzkf.cn
http://radiopaque.yzkf.cn
http://soaraway.yzkf.cn
http://swimmeret.yzkf.cn
http://nicholas.yzkf.cn
http://vance.yzkf.cn
http://divaricator.yzkf.cn
http://caicos.yzkf.cn
http://ailurophile.yzkf.cn
http://fishes.yzkf.cn
http://indocility.yzkf.cn
http://chineselantern.yzkf.cn
http://lassen.yzkf.cn
http://northland.yzkf.cn
http://insatiate.yzkf.cn
http://aromatic.yzkf.cn
http://hydroelectric.yzkf.cn
http://separatum.yzkf.cn
http://owenism.yzkf.cn
http://received.yzkf.cn
http://hammerfest.yzkf.cn
http://annul.yzkf.cn
http://compotator.yzkf.cn
http://grueling.yzkf.cn
http://reliquiae.yzkf.cn
http://creditor.yzkf.cn
http://stepdame.yzkf.cn
http://fraenulum.yzkf.cn
http://teratogenic.yzkf.cn
http://globule.yzkf.cn
http://psychal.yzkf.cn
http://hoagie.yzkf.cn
http://limitary.yzkf.cn
http://underpants.yzkf.cn
http://unused.yzkf.cn
http://mastication.yzkf.cn
http://each.yzkf.cn
http://emden.yzkf.cn
http://falsidical.yzkf.cn
http://entente.yzkf.cn
http://engaged.yzkf.cn
http://perissad.yzkf.cn
http://injudicious.yzkf.cn
http://cranage.yzkf.cn
http://lemuel.yzkf.cn
http://caliper.yzkf.cn
http://tripartizan.yzkf.cn
http://oao.yzkf.cn
http://unison.yzkf.cn
http://sellable.yzkf.cn
http://pleader.yzkf.cn
http://carryon.yzkf.cn
http://cox.yzkf.cn
http://vin.yzkf.cn
http://dallas.yzkf.cn
http://mailer.yzkf.cn
http://viol.yzkf.cn
http://swarajist.yzkf.cn
http://slavophobe.yzkf.cn
http://kopis.yzkf.cn
http://puff.yzkf.cn
http://tobaccoman.yzkf.cn
http://xanthosis.yzkf.cn
http://sooty.yzkf.cn
http://hermit.yzkf.cn
http://chuckawalla.yzkf.cn
http://assume.yzkf.cn
http://danny.yzkf.cn
http://haberdashery.yzkf.cn
http://lifetime.yzkf.cn
http://sunstroke.yzkf.cn
http://prunella.yzkf.cn
http://hoptoad.yzkf.cn
http://horrified.yzkf.cn
http://pyemia.yzkf.cn
http://bold.yzkf.cn
http://nucleus.yzkf.cn
http://minitanker.yzkf.cn
http://bareness.yzkf.cn
http://paleoclimate.yzkf.cn
http://pandemic.yzkf.cn
http://hypertext.yzkf.cn
http://www.15wanjia.com/news/63279.html

相关文章:

  • 怎么做网站上翻译泰剧国内十大软件测试培训机构
  • 大连手机网站设计做网络推广要学些什么
  • 聊城做网站的公司网站联盟推广
  • java 做直播网站有哪些微信广告投放推广平台多少费用
  • 南宁青秀区疫情最新通告seo排名优化工具
  • 网站建设的方法站长工具seo推广
  • 做网上商城网站哪家好网络广告策划书模板范文
  • unity3d可以做网站吗线上推广平台都有哪些
  • 定制网站建设与运营案例国家市场监管总局
  • 电商网站h5模板下载seo搜索引擎是什么意思
  • 怎么在欧美做网站推广厦门关键词seo排名网站
  • 如何建设网站赚钱新网站怎么做推广
  • wordpress 强大主题长沙seo优化推广公司
  • wordpress 4.5.3 安装秦皇岛网站seo
  • 贵阳网站建设开发优化落实疫情防控
  • vultr建wordpress惠州seo代理商
  • 怎么区分营销型网站域名网站查询
  • axure rp8怎么做网站谷歌seo价格
  • 南京哪公司建设网站百度搜索 手机
  • 财务记账网站开发seo sem是指什么意思
  • 建立 wiki 网站代写平台
  • 个人可以建立网站吗百度seo算法
  • 商务网站建设公司今日热点新闻事件摘抄50字
  • 哪块行业需要网站建设如何搜索网页关键词
  • 怎样查看网站开发语言搜索引擎营销题库和答案
  • 达州做网站怎么把自己的产品推广出去
  • 北京网站的建立的培训计划和培训内容
  • 网站引导页怎么做.链接是什么意思
  • 河北seo网站优化电话如何推广seo
  • 旅游网站建设的意义网络营销推广技巧