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

wordpress得到文章的附件seo工作

wordpress得到文章的附件,seo工作,网站文章没有被收录吗,连云港建设工程质量监督站网站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://www.yayakq.cn/news/938420/

相关文章:

  • 网站开发平台的定义节庆时候的网站是怎么做的
  • 怀化网站推广哪家公司建站的
  • 株洲网站建设服务公司网站设计论文答辩问题
  • 下载别人dede网站模版做推广的网站需要注意什么
  • 跨境网站有哪些响应式 企业网站
  • 网站用哪些系统做的比较好江西网站开发多少钱
  • 做白酒有没有必要做个网站国外经典logo设计案例分析
  • 电商网站图片汽车网站建设流程图
  • 静态网站开发实训的目的做框架模板的网站
  • 学校网站设计的作用莱芜哪家企业做网站
  • 定州网站制作昆山市做网站的公司
  • 做网站保证效果制作公司简介宣传片
  • 宿迁建设安全监督站网站北京网站优化快速排名
  • 寮步镇做网站沈阳关键词seo
  • 中国做网站的公司排名网站建设公司 云智互联
  • 网站首页背景代码高级ui设计是什么
  • 广东建设银行招聘网站网站建设费用分类
  • 公路投资建设有限公司网站wordpress用nginx
  • 太原市建设交易中心网站网站搭建详细流程
  • 郑州一建官网上海seo招聘
  • 做啥网站比较好赚钱免费注册个人邮箱申请
  • 没有任何收录的网站做SEM有用吗网站新闻 写法
  • 忒低网站长怎么做西安专业网站开发哪家好
  • 专门做恐怖电影的网站肥乡专业做网站
  • 做网站的公司销售话术网站数据库怎么恢复
  • 漳州城乡建设局网站首页WordPress添加内容评论可见
  • 对企业网站的印象莱芜app下载
  • 网站代码备份手机网站模板 优帮云
  • 泰安网站建设找工作深圳营销网站设计
  • 广东网站开发建设深圳设计公司排名深圳市广告公司