所以这个问题并不是很容易理解,但是我会尽力而为,让我说我有一个接口:

interface OnWindowMoveListener{
    void onWindowMove(MotionEvent motionEvent);
}


现在在我班上

OnWindowMoveListener onWindowMoveListener;

public void setOnWindowMoveListener(OnWindowMoveListener onWindowMoveListener){
    this.onWindowMoveListener = onWindowMoveListener;
}


稍后在我的代码中调用onWindowMoveListener.onWindowMove(),但是我不想检查用户是否设置了onWindowMoveListener,因此不设置为null,如何为该侦听器创建默认实现?如果用户自己没有实现接口,或者有其他方法可以实现,则是否必须在类的main方法中手动实现接口?我一直在检查调用之前接口是否已实现,但想知道是否有更干净的方法。谢谢

最佳答案

进行nullcheck并不是一项成本操作,但是如果您确实需要避免执行nullcheck,最好的选择是使用Null Object Design Pattern。

创建一个不执行任何操作的接口实现,然后将其用作onWindownMoveListener的默认值。

有关此设计模式的更多信息,请访问:https://sourcemaking.com/design_patterns/null_object/java-0

关于java - 接口(interface)的默认实现?或保留为空,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41168639/

10-09 01:25