模板模式-简
模板模式的两种简单实现:
一:由抽象类定义整体执行流程(流程是一成不变的),并预留一未实现的方法,用于实现具体的变化的核心业务处理,
??? 然后定义子类实现核心业务处理的方法,将核心业务处理延迟到子类.
public abstract class TemplateClass
{
? public void execute()
? {
???? //"...."省略号部分代表执行顺序或框架一成不变的部分
???? ....
???? action();
???? ....
? }
? //未实现的核心业务处理方法
? public abstract void action();
}
-->子类继承TemplateClass并实现核心处理方法action,调用子类的execute方法即可(整体执行框架都是复用的)
-----------------------------------------------------------------------
二:(由spring的transactionTemplate总结)
??? 模板类不是抽象类,模板类定义好整体框架及整体执行流程,给执行方法(即例一中的execute方法的位置)预留一个
??? 回调接口ActionCallBack,并在方法内调用接口的处理核心业务的方法;此方法要另建一个类继承回调接口
??? 并实现核心业务处理方法,并将该类作为参数传给执行方法即可.
//核心业务处理回调接口
public interface ActionCallBack
{
? public abstract void action();
}
//模板类
public class TemplateClass
{
? public void execute(ActionCallBack act)
? {
??? ....
??? act.action();
??? ....
? }
}
-->创建子类实现回调接口ActionCallBack的核心业务处理方法,调用模板类的执行方法时传入子类.
?
?
?
?
?
?
?
?