创建一个根据所传递参数对象不同而有不同行为的方法
class Processor {
public String name() {
return getClass().getSimpleName();
}
public Object process(Object input) {
return input;
}
}
class Upcase extends Processor {
public String process(Object input) {
return ((String)input).toUpperCase();
}
}
class Downcase extends Processor {
public String process(Object input) {
return ((String)input).toLowerCase();
}
}
class Spliter extends Processor {
public String process(Object input) {
return Arrays.toString(((String)input).split(" "));
}
}
public class Apply {
public static void processor(Processor p, Object s) {
System.out.println("Using Processor " + p.name());
System.out.println(p.process(s));
}
public static String s = "Disagement with belifs is by definition incorrect";
public static void main(String[] args) {
Apply.processor(new Upcase(), s);
Apply.processor(new Downcase(), s);
Apply.processor(new Spliter(), s);
}
}
class Processor {
public String name() {
return getClass().getSimpleName();
}
public Object process(Object input) {
return input;
}
}
class Upcase extends Processor {
public String process(Object input) {
return ((String)input).toUpperCase();
}
}
class Downcase extends Processor {
public String process(Object input) {
return ((String)input).toLowerCase();
}
}
class Spliter extends Processor {
public String process(Object input) {
return Arrays.toString(((String)input).split(" "));
}
}
public class Apply {
public static void processor(Processor p, Object s) {
System.out.println("Using Processor " + p.name());
System.out.println(p.process(s));
}
public static String s = "Disagement with belifs is by definition incorrect";
public static void main(String[] args) {
Apply.processor(new Upcase(), s);
Apply.processor(new Downcase(), s);
Apply.processor(new Spliter(), s);
}
}