Java学习笔记——设计模式之七.模板方法模式
2024-09-01 00:02:00
模板方法模式(TemplateMethod),定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
结构图:
代码:
算法骨架:
package cn.happy.design_pattern._07templatemethod; public abstract class AbstractClass { public abstract void primitiveOperation1();
public abstract void primitiveOperation2();
public void templateMethod(){
primitiveOperation1();
primitiveOperation2();
}
}
某类重写算法骨架的某步骤:
package cn.happy.design_pattern._07templatemethod; public class ConcreteClassA extends AbstractClass { @Override
public void primitiveOperation1() {
System.out.println("具体类A方法1实现"); } @Override
public void primitiveOperation2() {
System.out.println("具体类A方法2实现"); } }
public class ConcreteClassB extends AbstractClass { @Override
public void primitiveOperation1() {
System.out.println("具体类B方法1实现"); } @Override
public void primitiveOperation2() {
System.out.println("具体类B方法2实现"); } }
测试类:
package cn.happy.design_pattern._07templatemethod; public class Mmain { public static void main(String[] args) {
AbstractClass c = new ConcreteClassA();
c.templateMethod();
c = new ConcreteClassB();
c.templateMethod(); } }
最新文章
- UEditor编辑器使用示例
- dev winform导出功能
- 【LeetCode】Sort Colors
- 对非线程安全类List<;T>;的一些总结
- c# 中crystal report输出PDF文件
- yum源的更新问题
- iOS开发——常用Runtime函数
- HDOJ2553-N皇后问题(DFS)
- java日历程序版本
- EDA 事件驱动框架
- ionic系列
- CF1131E String Multiplication(???)
- 模块---hashlib、configparse、logging
- 集合(2)—Collection之List的使用方法
- WPF背景图
- Python3各种进制之间的转换方法
- 【mybatis源码学习】mybtias一级,二级缓存
- It’s Time To Think Linq
- html5 canvas多个图像旋转
- vuejs组件交互 - 01 - 父子组件之间的数据交互