假设我有以下接口:
我想创建一个实现上述接口的新类,但我需要实现一个带有另一个参数的函数。
public interface ConditionChecker {
boolean isInCondition(Person p);
}
我想创建一个实现上述接口的新类,但我需要实现一个带有另一个参数的函数。
public class MacroConditionChecker implements ConditionChecker {
public boolean isInCondition(Person p, MacroView mv);
}
两个问题:
一:如果我将接口签名更改为 boolean isInCondition(Person p, MacroView mv);
,那么我需要更新所有实现 ConditionChecker 接口的类。
二:我希望 ConditionChecker 的使用者可以直接调用 isInCondition 方法。
我认为这意味着:
public class MacroConditionChecker implements ConditionChecker {
private static final MacroView mv;
public MacroConditionChecker(MacroView mv) {
this.mv = mv;
}
public boolean isInCondition(Person p){
// now i have access to MacroView
}
}
那么,我需要做的唯一改变是在决定使用MacroConditionChecker并且调用isInCondition时不改变。
我走对了吗?还是有其他方法可以实现这个目标?
或者我应该将MacroView作为自己的接口分离出来?
public class MacroConditionChecker implements ConditionChecker implements MacroView
mv
字段声明为静态的呢? - Ken BekovConditionChecker
类传递到一个函数中,然后循环调用isInCondition
来一次性检查所有条件?这可以解释你不想改变该接口的原因。如果是这样,我认为你的解决方案很好。 - aridlehoover