atwood-pan

 

12-设计模式——模板方法模式

设计模式——模板方法模式

模式定义:

定义一个操作的算法骨架,而将一些步骤延迟到子类中。

通过模板方法,子类可以重新定义算法的某些步骤,而不用改变算法的结构。

Template Method 使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤

Class Diagram

LM3E0x.png

package com.example.designpatterns.templatemethod;
/**
* @program: DesignPatterns
* @description: 模板方法模式
* @author: Coder_Pan
* @create: 2022-04-13 17:41
**/
public class TemplateMethod {
public static void main(String[] args) {
/**
* 不同类的实现,仅仅通过控制创建子类的实例,即可实现
*/
AbstractClass abstractClass = new SubClass();
abstractClass.operation();
/**
* 其他子类的模板实现
*/
AbstractClass abstractClass1 = new SubClass1();
abstractClass1.operation();
}
}
abstract class AbstractClass {
public void operation(){
//open
System.out.println(" pre ....");
System.out.println(" step 1 ");
System.out.println(" step 2 ");
//sql ...
//close
/**
* 调用子类中的方法
*/
templateMethod();
}
/**
* templateMethod
*/
abstract protected void templateMethod();
}
class SubClass extends AbstractClass {
@Override
protected void templateMethod() {
System.out.println(" SubClass executed. ");
}
}
/**
* 其他的子类
*/
class SubClass1 extends AbstractClass {
@Override
protected void templateMethod() {
System.out.println(" SubClass1 executed. ");
}
}

posted on   JavaCoderPan  阅读(11)  评论(0编辑  收藏  举报  

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南

导航

统计

点击右上角即可分享
微信分享提示