如何删除类之间的重复代码?
我有2个类:递归斐波那契和记忆递归斐波那契。这就是我到目前为止所拥有的。
递归斐波那契类
public class SimpleRecursiveFibonacci {
public BigInteger fibonacci(int n) {
if(n < 2) {
return BigInteger.ONE;
}
return fibonacci(n - 2).add(fibonacci(n - 1));
}
}
和记忆递归斐波那契类
public class MemoizedRecursiveFibonacci {
private Map<Integer, BigInteger> cache = new HashMap<>();
public BigInteger fibonacci(int n) {
if(n < 2) {
return BigInteger.ONE;
}
if(!cache.containsKey(n)){
BigInteger currentFibonacci = fibonacci(n - 2).add(fibonacci(n - 1));
cache.put(n, currentFibonacci);
}
return cache.get(n);
}
}
正如我所看到的,在MemorizedRecursiveFibonacci类中有一些重复的代码
if(n < 2) {
return BigInteger.ONE;
和
BigInteger currentFibonacci = fibonacci(n - 2).add(fibonacci(n - 1));
我怎样才能保持干燥?删除重复的代码?