interface Processor {
String name();
Object process(Object object);
}
class Apply {
public static void process(Processor processor, String s) {
System.out.println("Using porcessor:" + processor.name());
System.out.println(processor.process(s));
}
}
class StringProcessor {
public String name() {
return getClass().getSimpleName();
}
public String porcess(String string) {
int charNum = string.length();
char[] array = new char[charNum];
string.getChars(0, charNum, array, 0);
for (int i = 0; i <= (charNum % 2 == 0 ? charNum - 2 : charNum - 3); i = i + 2) {
char tmp = array[i];
array[i] = array[i + 1];
array[i + 1] = tmp;
}
string = String.copyValueOf(array);
return string;
// return string.toUpperCase();
}
}
class StringProcessorAdapter implements Processor {
StringProcessor stringProcessor;
StringProcessorAdapter(StringProcessor stringProcessor) {
this.stringProcessor = stringProcessor;
}
public String name() {
return stringProcessor.name();
}
public Object process(Object object) {
return stringProcessor.porcess((String) object);
}
}
public class AdapterTest {
public static final String s = "abcdef";
public static void main(String[] args) {
Apply.process(new StringProcessorAdapter(new StringProcessor()), s);
}
}
输出结果:badcfe
java编程思想第四版习题_8.11
最新推荐文章于 2020-12-15 09:30:12 发布