定义枚举:
enum Type{
A{
public String getType() {
return "A";
}
},B {
@Override
public String getType() {
return "B";
}
},C {
@Override
public String getType() {
return "C";
}
},D {
@Override
public String getType() {
return "D";
}
};
public abstract String getType();
}
枚举可以重写getType()方法,可以根据各个枚举自己的业务重写该方法。
下面贴出本人的代码:
工具类:
public class ToLowerOperation implements IOperation {
public static final Logger LOG = LoggerFactory.getLogger(ToLowerOperation.class);
public static volatile ToLowerOperation addOperation = null;
public ToLowerOperation() {
}
public static IOperation newInstance(){
if(addOperation == null){
synchronized (ToLowerOperation.class){
if(addOperation == null){
addOperation = new ToLowerOperation();
}
}
}
return addOperation;
}
@Override
public String getData(String[] values, Object condition) {
String returnValue = "";
if(values != null){
returnValue = values[0].toLowerCase();
}
return returnValue;
}
}
工具类中重写接口方法,并定义单例模式。
枚举类:
public enum OperationEnums {
//字典对照
DictTypeOperationEnum() {
@Override
public IOperation getInstance() {
operation = DictTypeOperation.newInstance();
return operation;
}
},
//全部转小写操作
ToLowerOperationEnum() {
@Override
public IOperation getInstance() {
operation = ToLowerOperation.newInstance();
return operation;
}
};
public IOperation operation;
public IOperation OperationEnum() {
return operation;
}
/**
* 定义获取各个操作类实例
* @return
*/
public abstract IOperation getInstance();
public IOperation getOperation() {
return operation;
}
public void setOperation(IOperation operation) {
this.operation = operation;
}
}
本人实现的功能就是用枚举管理各个工具类,也可以将各个工具类的逻辑写在枚举中。
枚举实现同一接口。