模版方法模式:
准备一个抽象类,将部分逻辑以具体方法以及具体构造函数的形式实现,然后声明一些抽象方法来迫使子类实现剩余的逻辑。不同的子类可以以不同的方式实现这些抽象方法,从而对剩余的逻辑有不同的实现。这就是 模版方法模式的用意。
----阎宏的《Java与模式》一书关于中介者模式的介绍
模版方法使用例子:
1.ibatis Dao Template API 而言:ibatis源代码
JdbcDaoTemplate,OjbBrokerDaoTemplate,SqlMapDaoTemplate,HibernateDaoTemplate,TopLinkDaoTemplate都是抽象模板,
而DaoTemplate是这些模板的父模板,相应的实现都是应用程序中,继承相应的模板类,各自实现。
2.Servlet中的service()方法
Servlet接口中有5个方法,
public abstract void init(ServletConfig servletconfig) throws ServletException;
public abstract ServletConfig getServletConfig();
public abstract void service(ServletRequest servletrequest, ServletResponse servletresponse) throws ServletException, IOException;
public abstract String getServletInfo();
public abstract void destroy();
[init/service/destroy] :用于初始化......
Servlet接口的实现抽象类是GenericServlet,此方法仍没有实现service()方法
GenericServlet的实现类是HttpServlet,此类中实现service()方法,在此方法中,
调用了7个方法:对应7种Http请求
doGet、doHead、doPost、doPut、doDelete、doOptions、doTrace
当我们在开发过程中,通常回封装doPost()和doGet()方法,这也是模板方法模式的一个应用