所以这个问题并不是很容易理解,但我会尽力,假设我有一个界面:
interface OnWindowMoveListener{
void onWindowMove(MotionEvent motionEvent);
}
现在在我的类(class)里
OnWindowMoveListener onWindowMoveListener;
public void setOnWindowMoveListener(OnWindowMoveListener onWindowMoveListener){
this.onWindowMoveListener = onWindowMoveListener;
}
稍后在我的代码中调用 onWindowMoveListener.onWindowMove()
但我不想检查 onWindowMoveListener 是否已由用户设置,因此不为空,我将如何为此监听器创建默认实现?如果用户自己没有实现这些接口(interface),我是否必须在类的主方法中手动实现这些接口(interface),或者是否有其他方法可以做到这一点?我一直在调用之前检查接口(interface)是否已实现,但想知道是否有更干净的方法来执行此操作。谢谢
最佳答案
进行 nullcheck 并不是一种成本操作,但如果您确实需要避免它,最好的选择是使用空对象设计模式。
创建一个不执行任何操作的接口(interface)实现,然后将其用作 onWindownMoveListener 的默认值。
有关此设计模式的更多信息,请参阅:https://sourcemaking.com/design_patterns/null_object/java-0
关于java - 接口(interface)的默认实现?或保留为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168639/