[英]Default implementation for interface ? or leave as null
所以这个问题并不是很容易理解,但是我会尽力而为,让我说我有一个接口:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.