想象一下,您有两个具有完全相同结构的方法,但它们在内部调用的方法不同。“结构”是指逻辑运算符、回调或内部类的相同方案——即定义执行流程的所有内容。可能的几个用例:
1) 两种方法相似,但它们进行的内部调用不同(methodA 和 methodB)
void callIt(int a, int b) {
if (..) {
methodA();
}
}
void callIt(int a, int b) {
if (..) {
methodB();
}
}
2) 方法相似但内部调用参数参数不同(即方法之间的唯一区别是内部某些调用的重载(methodA))
void callIt(int a, int b) {
if (..) {
methodA(a, b);
}
}
void callIt(String a, String) {
if (..) {
methodA(a, b);
}
}
是否可以简化此代码并避免代码重复?
PS我使用Java,但希望没关系。
Asnwer:Pete Belford 给出了一个答案,如果我猜对了——这里对其进行了更详细的描述:Refactoring methods that use the same code but different types