模版方法:
模版类:
public abstract class BaseTemp{
public void excute(){
//执行流程操作之前的一些与主要业务无关的操作,如日志、执行效率检查、事务的开启等
DoBusiness();
//执行流程操作之后的一些也主要业务无关的操作
}
public abstract void DoBusiness();
}
实体类:
public class DoClass extends BaseTemp{
@override
public void DoBusiness(){
//业务代码
}
}
执行:
DoClass do = new DoClass();
do.excute(); //excute执行的时候会执行业务无关代码的同时执行DoClass 定义的DoBusiness方法。
优势:
可以在任何业务代码执行之前或之后插入固定的与业务无关的执行流程。避免了许多与业务无关但是需要在业务执行前后执行的代码,在每个业务执行代码中都出现,有利于代码的简洁及可读性。
缺点:
某种模版定义后,业务执行前后执行的代码就固定了,无法改变模版。如果想改改变非业务代码则需要重新再构建一个模版。