package com.alibaba.rocketmq.namesrv.sync; /** * * @author lansheng.zj@taobao.com * * @param <R> ����ֵ���� * @param <T> �������� */ public abstract class Exec<R, T> { public void beforeExec(){} public abstract R doExec(T param) throws Exception; public void afterExec(R r){} public R exec(T param) throws Exception { beforeExec(); R r = doExec(param); afterExec(r); return r; } }