Java 设计模式 Template Method 模板方法 模式

该博客介绍了Java设计模式中的TemplateMethod模板方法模式,它允许在父类中定义处理流程框架,子类只需实现具体的处理步骤。通过一个抽象类TeacherLecture定义教学流程,包括开始、授课和结束三个步骤,然后分别由ChineseTeacher和EnglishTeacher两个具体类实现各自的教学内容。这种方式提高了代码复用性和可扩展性。

Java 设计模式 Template Method 模板方法 模式

       Template Method模式用于在父类中定义处理流程的框架,在子类中实现具体处理。有点是由于在父类的模板方法里编写了算法,因此无需在每个子类中再编写算法。

涉及到的角色

  • 抽象类:负责实现模板方法,定义模板方法中所使用到的抽象方法。
  • 具体类:负责实现抽象类角色定义的抽象方法 
/**
 * 抽象类
 * @author 托马斯小火车喷雾又喷烟
 *
 */
public abstract class TeacherLecture {
	
	public abstract void begin();
	
	public abstract void lecture();
	
	public abstract void end();
	
	public final void doLecture() {
		begin();
		lecture();
		end();
	}

}


/**
 * 具体类
 * @author 托马斯小火车喷雾又喷烟
 *
 */
public class ChineseTeacher extends TeacherLecture {

	@Override
	public void begin() {
		System.out.println("开始上语文课拉!");
	}

	@Override
	public void lecture() {
		System.out.println("从前有座山,山里有座庙......");
	}

	@Override
	public void end() {
		System.out.println("语文课结束啦。");
	}

}

/**
 * 具体类
 * @author 托马斯小火车喷雾又喷烟
 *
 */
public class EnglishTeacher extends TeacherLecture {

	@Override
	public void begin() {
		System.out.println("开始上英语课拉!");
	}

	@Override
	public void lecture() {
		System.out.println("I have a dream ......");
	}

	@Override
	public void end() {
		System.out.println("英语课结束啦。");
	}

}

/**
 * 
 * @author 托马斯小火车喷雾又喷烟
 *
 */
public class Main {

	public static void main(String[] args) {
		TeacherLecture chinese = new ChineseTeacher();
		chinese.doLecture();
		TeacherLecture english = new EnglishTeacher();
		english.doLecture();
	}

}
开始上语文课拉!
从前有座山,山里有座庙......
语文课结束啦。
开始上英语课拉!
I have a dream ......
英语课结束啦。

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值