九九乘法表谁都会打印。常规的两重循环就可实现。我现在把循环嵌套简化:就一层循环,每次迭代都让一个具体的实现者去干活。也就是:乘法表的每个行都由一个专职者负责完成,对于上层调用者不关心每次迭代时的具体实现。
先看
/**
* 转换者
* @param <T> 转换后的内容
* @param <R> 待转换的内容
*/
interface Converter <T,R> {
T convert(R r);
}
乘法表的实现
public static void main(String... args) {
Converter<String,Integer> C = (s)->{
if (s > 0 && s < 10) {
String S = "";
for (int i = 1 ; i <= s; i++) {
S += String.format("%1d*%1d=%2d\t", s, i , s * i);
}
return S;
}
return "";
};
for (int i = 1; i < 10; i++) {
System.out.println(C.convert(i));
}
}
这篇文章抛砖引玉,有想法请指教