zhuangzhuang1988
2016-04-12 09:40:53 +08:00
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
abstract class Validate {
abstract boolean validate(Object obj);
abstract void process(Object val);
}
class A {
}
class B {
}
class AValidate extends Validate {
@Override
boolean validate(Object obj) {
return obj instanceof A;
}
@Override
void process(Object val) {
A a = (A)val;
// ...
}
}
class BValidate extends Validate {
@Override
boolean validate(Object obj) {
return obj instanceof B;
}
@Override
void process(Object val) {
B a = (B)val;
// ...
}
}
public class Main {
public static void main(String[] args) {
Object a = new A();
Validate[] validates = {
new AValidate(),
new BValidate()
};
for(Validate v: validates ){
if(v.validate(a)){
v.process(a);
break;
}
}
}
}
试试下.