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

如何做后台网站的教程WordPress+百度+主动

如何做后台网站的教程,WordPress+百度+主动,网站可以做章子吗,广州网络推广万企在线22.模板模式 模板方法(Template Method)作为Java的设计模式之一,一个词概括其优势特点那就是:抽象步骤 首先我们应该抽出共通的东西做一个父类(Base类),其次具体的蛋糕制作由子类进一步实现&…

22.模板模式
模板方法(Template Method)作为Java的设计模式之一,一个词概括其优势特点那就是:抽象步骤
首先我们应该抽出共通的东西做一个父类(Base类),其次具体的蛋糕制作由子类进一步实现,每一种制作方式我们就拓展一个子类

UML类图:
在这里插入图片描述

仔细观察Cake类,你会发现make方法是这个类的核心,make()中便是执行制作的核心代码,为了尽可能将共通的东西都留在父类(base类),我们要进一步将make()中的代码拆分,让其变成众多子步骤方法如下:
一、抽象类:蛋糕

public abstract class Cake {public final void make(){makeStart();//开始制作makeCakeGerm();//制作蛋糕胚makeCream();//怎么做wipeCakeGerm();//将奶油抹到蛋糕胚上piping();//怎么抹makeFinish();//结束制作}private void makeStart(){System.out.println("开始制作蛋糕");}private void makeCakeGerm(){System.out.println("制作蛋糕胚");}public abstract void makeCream();private void wipeCakeGerm(){System.out.println("将奶油抹到蛋糕胚上");}public abstract void piping();private void makeFinish(){System.out.println("结束制作蛋糕");}
}

我们可以看到已经把make方法中的步骤进一步拆分细化,有先做蛋糕胚,再做奶油,然后涂抹到蛋糕胚上,最后裱花
我们来注意几个细节:

  • 1、cake类成为了抽象类,没啥好说的,方法都抽象了
  • 2、make方法增加了final修饰,不希望子类覆写这个方法,防止流程被更改
  • 3、步骤抽象化,这是模板方法的核心,步骤的具体实现交由子类自行实现,每一种蛋糕都可以用不同的子类独立实现,这样可读性就大大提高了,而且扩展也非常方便,只需要实现一个新的子类即可

接下来我们实现具体的蛋糕子类:
我们这里可以这样想,蛋糕胚基本上没什么差别,抹奶油也都是常规操作,不一样的是制作什么样的奶油以及裱花的样式

蛋糕A:

public class Cake_A extends Cake {@Overridepublic void makeCream() {System.out.println("植物奶油 抹茶味");}@Overridepublic void piping() {System.out.println("裱花八朵");}
}

蛋糕B:

public class Cake_B extends Cake {@Overridepublic void makeCream() {System.out.println("动物奶油 巧克力味");}@Overridepublic void piping() {System.out.println("裱个生日快乐");}
}

测试类:

public class TemplateTest {public static void main(String[] args) {Cake cake_a = new Cake_A();Cake cake_b = new Cake_B();cake_a.make();System.out.println("*********************");cake_b.make();}
}

输出结果:

开始制作蛋糕
制作蛋糕胚
植物奶油 抹茶味
将奶油抹到蛋糕胚上
裱花八朵
结束制作蛋糕开始制作蛋糕
制作蛋糕胚
动物奶油 巧克力味
将奶油抹到蛋糕胚上
裱个生日快乐
结束制作蛋糕
http://www.dtcms.com/a/545215.html

相关文章:

  • Faster-Whisper唤醒词检测程序设计实战1
  • MPP文件处理组件Aspose.Tasks教程:使用Python在Excel中打开MPP文件
  • Optimum:onnx模型量化
  • C++ 鸭科夫手柄适配
  • dubbo和springcloud的差别
  • Linux系统编程——目录操作函数
  • MitoSOX Red 别名:Mitochondrial Superoxide Indicator; 红色线粒体超氧化物荧光探针
  • 深圳做网站做得比较好的公司struts2 做的网站
  • Reflex:用纯Python写交互式Web应用,从0到1构建你的第一个UI
  • 怎么查找网站是谁做的钢材网站模板
  • 打造高清3D虚拟世界|零基础学习Unity HDRP高清渲染管线(第十天)
  • oto电子商务网站建设网站建设的公司上海
  • 【数据结构】链式结构二叉树详解
  • Flutter兼容性问题:Could not get unknown property ‘flutter‘ for extension ‘android‘
  • 【Linux系统编程】自动化构建-make/Makefile
  • php网站打开慢青海高端网站建设
  • 仓颉TreeMap红黑树结构深度解析
  • React中Suspense的分包实践
  • 垃圾收集器
  • CSharp UI更新及跨线程更新总结
  • 两个域名同一个网站做优化淘宝优惠网站怎么做
  • 深入仓颉UI:事件处理的声明式哲学与高阶实践
  • Actix Web 入门与实战
  • 外贸soho建站云南省建设厅网站二建
  • 20251029在AIO-3576Q38开发板的Android14下使用iperf3测试WIFI模块AP6256的网速【87.8 Mbits/sec】
  • 怎么用dede建设网站网站建设开放的端口
  • 基本select语句
  • linux命令-系统信息与监控-2
  • 【Ubuntu】安装amd驱动及ROCM后,系统起不来的问题分析及解决方案
  • 外国网站后台设计iis网页提示网站建设中