package org.nutz.trans;
/**
* Atom接口的另外一种变种实现
* @author wendal(wendal1985@gmail.com)
*
* @param <T> 返回值的类型
*/
public abstract class Proton<T> implements Atom {
private T obj;
/**
* 通常在匿名内部类中初始化
*/
public Proton() {}
/**
* exec方法的返回值
* @return 方法返回值
*/
public T get() {
return obj;
}
/**
* 用户代码的开始
*/
public void run() {
obj = exec();
}
/**
* 需要子类实现的逻辑
* @return 方法返回值
*/
protected abstract T exec();
}