设计模式之略见一斑(Template Method模板方法模式)

本文介绍模板方法模式的概念及其应用场景,通过实例演示如何使用抽象类定义算法骨架,将具体实现细节留给子类完成,以达到代码复用的目的。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  模板方法模式就是预先作好一个模板,开发者只要根据模板添加相应的业务实现,这个就是架构啦。

它有如下特点

1.这个模板一般是个抽象类,抽象出子类中部分公共的方法,从而减轻子类的负担。

2.这个模板可能会定义一些方法,子类必须实现这些方法。

比如说我们想要某个方法总是以线程方法启动,于是我们的抽象类定义如下:

 

public abstract class Template {

	public abstract void action();

	public void doAction() {
		new Thread(new Runnable() {
			public void run() {
				action();
			}
		}).start();
	}
}

 

其中action具体就由子类SubTemplate实现。

public class SubTemplate extends Template {

	@Override
	public void action() {
		// TODO Auto-generated method stub
		doSomeThing();
	}

}

 

OK,模板方法模式就这么简单了.

 

小结:

    Template Method模式目的在于一个方法中定义一个算法,并对算法的某些步骤进行抽象,这样,我们可以将这些步骤的具体实现从这个方法中提出,并在某个部方法中定义这些步骤,或者是用一个接口定义这些步骤,留待其他类来提供这些步骤的实现。

    Template Method模式通常可以作为开发人员之间的约束。一个开发人员提供算法的框架,另一个开发人员则提供算法某些步骤的具体实现。这也许是需要算法实现的步骤,或者是算法的开发人员在算法中某一位置设置的钩子。

    Template Method模式并不要求我们定义子类前编写模板方法。我们可能在已有的类层次结构发现相似的方法。在这种情况下,我们可以抽象出算法的架构,并把它上移到超类中,从应用模板方法模式来简化和组织代码。这种模式在日常开发中比较常用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值