定义方法的抽象类
public abstract class Operation {
void execute(long result, String data) {};
void execute(long result, List<String> datas) {
for (String data: datas) {
execute(result, data);
}
}
}
定义不同的Operation实例对象,有不同的execute函数实现
public class Service {
private static final Operation ADD_OPERATION = new Operation() {
@Override
public void execute(long result, String data) {
// TODO
}
};
private static final Operation SUB_OPERATION = new Operation() {
@Override
public void execute(long result, String data) {
// TODO
}
};
private static final Operation ALL_OPERATION = new Operation() {
@Override
public void execute(long result, String data) {
// TODO
}
};
定义使用Operation类对象的地方
public boolean order(String key, String data, Operation operation) throws Exception {
long result = rpush(key, data);
operation.execute(result, data);
return result != 0;
}
public boolean orderAll(String key, List<String> datas, Operation operation) throws Exception {
long result = rpush(key, datas);
operation.execute(result, datas);
return result != 0;
}
传入对象,这个对象有重写接口函数,调用接口函数时可以执行不同的方法
order(key1, data1, ADD_OPERATION);
order(key2, data2, SUB_OPERATION);
orderAll(key3, dataList, ALL_OPERATION);
网友评论