Java23种设计模式——模板模式
来源:互联网 发布:淘宝店铺可以注销吗 编辑:程序博客网 时间:2024/05/16 12:29
该系列文章为博主学习笔记,原文请参考参考链接
本文禁止转载,但是欢迎大家留言区留言交流[微笑]
模板模式是一种类继承模式,主要是通过一个抽象类,把子类一些共有的类提取出来(称为基本方法),放到抽象类中,并在抽象类中定义一个模板方法,在模板方法中规定基本方法的执行顺序。将不同的实现细节交给子类去实现。
例如小明和小华每天上学前都要叠好被子,吃早餐,然后去上学,只不过小明是乘坐公交车去上学,而小华是骑自行车上学。在叠被子和吃早餐这两件事情是他们共有的,我们可以提取出来放到父类去实现,而去上学这件事情,出现了偏差,两个人的实现方式不同,所以不能放在父类去实现,应该交给子类去实现。
这里doquilt()和eatfastbreak()分别对应叠被子和吃早饭,因为没有差异,所以我们放在抽象类中,模板方法 templateMethod()分别对这三个方法调用,规定了调用的顺序,而gotoschool()方法因为小明和小华两个人实现不同,所以我们一般定义为抽象的方法,由子类去实现。
代码:
public abstract class GoSchool { public void templateMethod() { doquilt(); eatfastbreak(); gotoschool(); } public void doquilt() { System.out.println("叠被子"); } public void eatfastbreak() { System.out.println("吃早餐"); } public abstract void gotoschool();}
public class XiaoHua extends GoSchool { @Override public void gotoschool() { System.out.println("骑自行车"); }}
public class XiaoMing extends GoSchool { @Override public void gotoschool() { System.out.println("乘坐公交车"); }}
public class myClass { public static void main(String[] args){ GoSchool goSchool=new XiaoMing(); goSchool.templateMethod(); }}
输出:
叠被子
吃早餐
乘坐公交车
通过模板模式,将公共的行为放到父类中去实现,子类实现不同的细节,很大程度上加大了代码的复用,并且子类的更改不会影响到父类,更改和增加新的子类很方便,符合单一职责和开闭原则。
微信公众号:
QQ群:365473065
阅读全文
0 0
- Java23种设计模式——模板模式
- java23种设计模式之一--模板模式
- Java23种设计模式——Iterator设计模式
- Java23种设计模式
- JAVA23种设计模式
- JAVA23种设计模式
- JAVA23种设计模式
- JAVA23种设计模式
- JAVA23种设计模式
- JAVA23种设计模式
- java23种设计模式
- Java23种设计模式
- java23种设计模式
- java23种设计模式
- java23种设计模式
- java23种设计模式
- java23种设计模式
- Java23种设计模式
- 1014. Waiting in Line (30)
- spring MVC 的参数传递方式
- etcd-webui安装
- mysql故障排除
- 利用反汇编帮助查找段错误
- Java23种设计模式——模板模式
- 浏览微信的目录
- python面向对象入门之奇怪的静态变量
- "undefined reference to" 问题解决方法
- Celery-4.1 用户指南: Application
- 通用等分自适应上传组件
- Oculus VR开发问题汇总
- 控制台猜拳
- Ubuntu查询已经安装的软件