模板设计模式代码
class="java" name="code">package com.svse.template;
/**
* 基于继承实现莫办设计模式
* @author Administrator
*
*/
public abstract class BasedExtendTemplate {
//链接数据库
public void beginConnection(){
System.out.println("conection successs");
}
//关闭数据库
public void closeConnection(){
System.out.println("close connection");
}
/**
* 通过派生类的继承对该方法进行重写,达到各自的需求
*/
public abstract void run();
/**
* 在模板方法中有一种函数叫钩子函数
* 作用:让实现类可以通过一些方法来控制模板中的流程,控制是否执行相应的动作
* @return
*/
public abstract boolean isLog();
/**
* 一起执行模板中的方法
*/
public void execute(){
this.beginConnection();
if(isLog()){
System.out.println("添加日志");
}
run();
this.closeConnection();
}
}
具体化实现对应功能:
package com.svse.template;
/**
* 基于继承实现模板
* @author Administrator
*
*/
public class RoleDao extends BasedExtendTemplate {
/**
* 对模板中的具体功能进行详细的实现
*/
public void run() {
System.out.println("run");
}
/**
* 钩子函数进行判断
* 是否加入日志
*/
public boolean isLog() {
return true;
}
}