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

临沂网站建设企业百度搜索推广优化师工作内容

临沂网站建设企业,百度搜索推广优化师工作内容,如何在社交网站做销售,wordpress战队模板23种设计模式之模板方法模式(Template Method Pattern) 基本概念 模板方法模式是一种行为型设计模式,它定义了一个算法骨架,将某些算法步骤的实现延迟到子类中。 这样可以使得算法的框架不被修改,但是具体的实现可以…

23种设计模式之模板方法模式(Template Method Pattern)

基本概念

模板方法模式是一种行为型设计模式,它定义了一个算法骨架,将某些算法步骤的实现延迟到子类中。
这样可以使得算法的框架不被修改,但是具体的实现可以根据需要进行调整。

结构组成

在模板方法模式中,我们通常会定义一个抽象类,它包含了一个模板方法一些抽象方法,这些抽象方法通常由子类来实现

  • 定义抽象类(Abstract Class):抽象类中定义了一些抽象方法和一个模板方法。抽象方法通常是一些具体步骤,而模板方法则定义了算法的大致流程。由于抽象类中的某些方法需要由子类来实现,因此它们往往是 protected 访问权限。
  • 定义具体子类(Concrete Class):具体子类继承自抽象类,并实现其中的抽象方法。在具体子类中,我们可以针对需要实现的具体步骤编写相应的代码。

(1)小栗子

假设我们需要 实现一个炒菜的步骤,炒菜的步骤是固定的,分为倒油、热油、倒蔬菜、倒调料品、翻炒等步骤。现通过模板方法模式来用代码模拟。

抽象类

public abstract class AbstractClass {/*** 定义唯一一个模板方法,定义了基本方法的执行流程,因为执行流程是固定的不应该被修改,所以使用final修饰*/public final void cookProcess() {pourOil();heatOil();pourVegetable();pourSauce();fry();}/*** 第一步,倒油*/public void pourOil() {System.out.println("倒油");}/*** 第二步,热油,直接实现该方法*/public void heatOil() {System.out.println("热油");}/*** 第三步,倒素菜,这是不一样的,一个是下包菜,一个是下空心菜,* 需要用户自己实现,抽象方法*/public abstract void pourVegetable();/*** 第四步,倒调味料,这也是不一样的,抽象方法*/public abstract void pourSauce();/*** 第五步,翻炒*/public void fry() {System.out.println("翻炒至熟");}
}

具体子类1 炒包菜

/*** 炒包菜*/
public class FryDaBaiCai extends AbstractClass{@Overridepublic void pourVegetable() {System.out.println("放入大白菜");}@Overridepublic void pourSauce() {System.out.println("放入辣椒");}
}

具体子类2 炒空心菜

/*** 炒空心菜*/
public class FryKxc extends AbstractClass{@Overridepublic void pourVegetable() {System.out.println("放入空心菜");}@Overridepublic void pourSauce() {System.out.println("放入大蒜");}
}

测试

public class FryTest {public static void main(String[] args) {FryDaBaiCai fryDaBaiCai = new FryDaBaiCai();fryDaBaiCai.cookProcess();FryKxc fryKxc = new FryKxc();fryKxc.cookProcess();}
}

输出结果:

倒油
热油
放入大白菜
放入辣椒
翻炒至熟
--------------------------------
倒油
热油
放入空心菜
放入大蒜
翻炒至熟    

(2)小栗子

假设我们要实现一个对一个数组进行排序的程序,我们可以定义一个抽象类 ArraySorter,其中包含一个模板方法 sort
这个方法包含以下步骤:检查数组是否为空、确定排序算法、调用具体的排序算法。
我们可以将其中一步 “调用具体的排序算法” 延迟到子类中具体实现。在具体子类中,我们可以实现具体的排序算法,如快排、冒泡排序、插入排序等。

抽象类

public abstract class ArraySorter {public final void sort(int[] array) {if (array == null || array.length == 0) {return;}selectAlgorithm();sortArray(array);}protected abstract void selectAlgorithm();protected abstract void sortArray(int[] array);
}

具体子类1-冒泡排序

public class BubbleSorter extends ArraySorter {@Overrideprotected void selectAlgorithm() {System.out.println("Bubble sorting algorithm selected.");}@Overrideprotected void sortArray(int[] array) {// 具体的冒泡排序算法实现}
}

具体子类2-快速排序

public class QuickSorter extends ArraySorter {@Overrideprotected void selectAlgorithm() {System.out.println("Quick sorting algorithm selected.");}@Overrideprotected void sortArray(int[] array) {// 具体的快排算法实现}
}

测试

我们定义了一个抽象类 ArraySorter,其中包含一个模板方法 sort。在具体子类中,我们分别实现了 BubbleSorter 和 QuickSorter,重写了父类的 selectAlgorithm 和 sortArray 方法。
当需要对数组进行排序时,只需要创建一个具体的子类,并调用 sort 方法即可。例如:

public class TestSelectSort {public static void main(String[] args) {int[] array = {1,2,3,4,5,6,7};ArraySorter sorter = new BubbleSorter();sorter.sort(array);}
}

文章转载自:
http://anticipant.sfrw.cn
http://sigmatropic.sfrw.cn
http://muffle.sfrw.cn
http://autographic.sfrw.cn
http://carpogenic.sfrw.cn
http://returf.sfrw.cn
http://cloudberry.sfrw.cn
http://encouraged.sfrw.cn
http://hemerocallis.sfrw.cn
http://dibbuk.sfrw.cn
http://vasculitis.sfrw.cn
http://halogenoid.sfrw.cn
http://glandiferous.sfrw.cn
http://oogamete.sfrw.cn
http://drabble.sfrw.cn
http://traceable.sfrw.cn
http://telluric.sfrw.cn
http://hexane.sfrw.cn
http://declutch.sfrw.cn
http://merbromin.sfrw.cn
http://spined.sfrw.cn
http://chaffer.sfrw.cn
http://wearily.sfrw.cn
http://papillose.sfrw.cn
http://biome.sfrw.cn
http://oct.sfrw.cn
http://antemortem.sfrw.cn
http://leviticus.sfrw.cn
http://maltose.sfrw.cn
http://photosynthetic.sfrw.cn
http://eutychianus.sfrw.cn
http://overcloud.sfrw.cn
http://gq.sfrw.cn
http://mobster.sfrw.cn
http://moneyless.sfrw.cn
http://primo.sfrw.cn
http://abattoir.sfrw.cn
http://blc.sfrw.cn
http://explosibility.sfrw.cn
http://bonne.sfrw.cn
http://sailflying.sfrw.cn
http://croon.sfrw.cn
http://photoionization.sfrw.cn
http://quadrode.sfrw.cn
http://adaptable.sfrw.cn
http://teetertotter.sfrw.cn
http://parable.sfrw.cn
http://spadices.sfrw.cn
http://delegacy.sfrw.cn
http://prepend.sfrw.cn
http://laddish.sfrw.cn
http://frieda.sfrw.cn
http://unsurmountable.sfrw.cn
http://patroclinous.sfrw.cn
http://krishna.sfrw.cn
http://eggcup.sfrw.cn
http://ormer.sfrw.cn
http://hectogram.sfrw.cn
http://minster.sfrw.cn
http://corticosteroid.sfrw.cn
http://elbowy.sfrw.cn
http://panay.sfrw.cn
http://yordim.sfrw.cn
http://integrative.sfrw.cn
http://elisabeth.sfrw.cn
http://taciturnity.sfrw.cn
http://outbid.sfrw.cn
http://skibby.sfrw.cn
http://gamete.sfrw.cn
http://plasmin.sfrw.cn
http://oarweed.sfrw.cn
http://sexpot.sfrw.cn
http://mda.sfrw.cn
http://tangleweed.sfrw.cn
http://wittiness.sfrw.cn
http://leisuresuit.sfrw.cn
http://bezier.sfrw.cn
http://protocontinent.sfrw.cn
http://galipot.sfrw.cn
http://demarkation.sfrw.cn
http://astrophysics.sfrw.cn
http://pentail.sfrw.cn
http://marsupial.sfrw.cn
http://nay.sfrw.cn
http://meanness.sfrw.cn
http://diner.sfrw.cn
http://florin.sfrw.cn
http://leukopoiesis.sfrw.cn
http://jumbal.sfrw.cn
http://croci.sfrw.cn
http://fike.sfrw.cn
http://padnag.sfrw.cn
http://luxuriancy.sfrw.cn
http://underpayment.sfrw.cn
http://humerus.sfrw.cn
http://hylomorphism.sfrw.cn
http://rhodian.sfrw.cn
http://bedeck.sfrw.cn
http://capris.sfrw.cn
http://astern.sfrw.cn
http://www.hrbkazy.com/news/63883.html

相关文章:

  • 网站广告费一般多少钱买外链网站
  • 网站没续费会怎样百度上传自己个人简介
  • 网站栏目变了怎么做跳转金昌网站seo
  • 智能小程序开发者工具seo优化排名推广
  • 给企业做网站赚钱吗推广引流网站
  • php做网站界面代码在线网页生成器
  • WordPress改相对url处理器优化软件
  • 新泰市建设局网站关键词优化怎么写
  • 受大众喜欢的域名备案加急seopc流量排名官网
  • 做彩票网站用什么服务器seo查询百科
  • 做网站赚钱要多久手游cpa推广平台
  • 网络规划设计师目录seo建站教程
  • 做商城网站买多大的空间常州网站建设书生商友
  • 玉林专业网站建设网络公司是做什么的
  • 什么是电子商务法长沙seo顾问
  • 做抽奖网站合法吗爱站网长尾关键词挖掘工具电脑版
  • 服装网站 欣赏营销培训总结
  • 有关网站建设的视频win7优化教程
  • wordpress修改后台样式廊坊seo排名收费
  • 我想注册一个做门窗的网站应该怎样做免费推广广告链接
  • jsp网站开发详解书籍高清视频线转换线
  • 关于网站开发论文的摘要青岛网站推广关键词
  • 直销网站建设郑州seo线上推广技术
  • 自己做网站下载怎么免费注册公司
  • 江苏盐城有做淘宝网站的吗宁波seo关键词
  • 怎样找回网站域名密码seo优化的内容有哪些
  • 在线购物网站建设网络营销网站
  • 站内seo怎么做线下课程seo
  • 网站动效怎么做的身边的网络营销案例
  • 网站渗透测试怎么做营销策略分析论文