所以问题不是很容易理解,但我会尽我所能,让我说我有一个界面:
interface OnWindowMoveListener{
void onWindowMove(MotionEvent motionEvent);
}
现在我上课了
OnWindowMoveListener onWindowMoveListener;
public void setOnWindowMoveListener(OnWindowMoveListener onWindowMoveListener){
this.onWindowMoveListener = onWindowMoveListener;
}
稍后在我的代码中调用onWindowMoveListener.onWindowMove()
,但我不想检查用户是否设置了onWindowMoveListener,因此不是null,我将如何为此侦听器创建默认实现?我是否必须在我的类的main方法中手动实现接口,以防用户自己没有实现它们或者有其他方法吗?我一直在检查接口是否已在调用之前实现,但想知道是否有更简洁的方法来执行此操作。谢谢
答案 0 :(得分:0)
执行nullcheck不是一个成本操作,但如果你真的需要避免它,你最好的选择是使用Null对象设计模式。
创建一个不执行任何操作的接口实现,而不是将其用作onWindownMoveListener的默认值。
有关此设计模式的详细信息,请参阅:https://sourcemaking.com/design_patterns/null_object/java-0