Template模式

     Template模式就是在父类中定义一个操作中的骨架算法,而将一些用户自定义的逻辑延迟到子类中,这里以一个示例来说明,假如所有的business方法中都必须要进行用户验证(validateUser)、异常捕获、进行一个业务操作,那么我们就给用户验证、异常捕获封装到父类中,子类中只需要写一些business代码就可以了,父类代码如下:   

public   abstract   class  BusinessTemplate  {
    
public void execute() throws Exception {
        validateUser();
        
try {
         business();
         doBusiness();
        }
 catch (Error e) {
            e.printStackTrace();
        }

    }

    
void validateUser() {
        System.out.println(
"验证用户...");
    }
;
    
void business(){
        System.out.println(
"业务1");
    }

    
public abstract void doBusiness();
}

这里是一个抽象类,有个execute()方法,在这个方法中进行了用户验证、异常捕获和一个业务执行,在这3项任务结束后执行了doBusiness()方法,同时doBusiness()方法又是一个抽象方法,继承该抽象类就要重写这个抽象方法,在这里定义用户自己的业务,写一个子类如下:   

public   class  Business  extends  BusinessTemplate  {
public void doBusiness() {
         System.out.println(
"自定义的业务");
    }

}
这里继承类就重写了doBusiness方法,这里定义一个用户自己的业务,接着写一个测试类如下:
package  spring.chapter4.template;
public   class  TestTemplate  {
    
public static void main(String[] args) throws Exception {
        Business business 
= new Business();
        business.execute();
    }

}
这里的 Business 类调用了父类的 execute 方法,也就说按 execute() 方法的执行顺序来执行,运行结果如下:
  验证用户 ...
业务 1
自定义的业务
这里 Business 类是 BusinessTemplate 的一个子类,原本也需要写用户验证、异常捕获等业务,而采用了一个父类模板就给所有的业务都省略了,其他任何需要进行用户验证、异常捕获、业务一这些操作的逻辑都只需要继承 BusinessTemplate 然后只需要写用户的逻辑代码就可以了,再也不用重复写那些重复的逻辑了, Spring 中正是采用了这样的方法来封装了数据库操作的 Connection Statement 这些连接、关闭以及异常捕获等。

 

 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值