Interface 具有WebView数据成员的PictureListener-这有意义吗?

Interface 具有WebView数据成员的PictureListener-这有意义吗?,interface,webview,listener,android-webview,Interface,Webview,Listener,Android Webview,众所周知,是一个带有单个公共方法的接口:onNewPicture(WebView视图,Picture Picture) 它适用于简单的场景,但在我的情况下,我需要处理各种错误(由于互联网的不可预测性,特别是通过WiFi/3G) 为此,我打算创建一个稍微复杂一点的类,实现PictureListener,并拥有一些额外的状态信息和相关的处理函数。到目前为止还不错,但是 其中一个函数需要访问WebView——该WebView与onNewPicture()中作为参数传递的WebView相同,但是Pict

众所周知,是一个带有单个公共方法的接口:
onNewPicture(WebView视图,Picture Picture)

它适用于简单的场景,但在我的情况下,我需要处理各种错误(由于互联网的不可预测性,特别是通过WiFi/3G)

为此,我打算创建一个稍微复杂一点的类,实现PictureListener,并拥有一些额外的状态信息和相关的处理函数。到目前为止还不错,但是

其中一个函数需要访问
WebView
——该WebView与
onNewPicture()
中作为参数传递的WebView相同,但是
PictureListener
在其他任何地方都不可用

因此,我考虑将该WebView作为参数传递给
MyPictureListener
的构造函数,并将其保存为私有数据成员

我以前从未见过这种实现的例子,我不确定我是否会违反我不熟悉的规则

具有WebView数据成员的PictureListener有意义吗?有没有我应该注意的陷阱

不,没有

您不会违反规则,但会违反WebView&PictureListener设计的“思维模式”:

  • PictureListener是一个接口和 未将WebView作为 参数
  • 另一方面,WebView有一个 用于关联一个对象的专用方法 用它来描绘画面。所以WebView “知道”关于PictureListener的事
  • 不要将WebView参数传递给PictureListener的构造函数,只需将
    onNewPicture()
    中的
    view
    参数强制转换到您的WebView,并在您的WebView中调用访问其中任何内容的方法。

    不,它不会

    您不会违反规则,但会违反WebView&PictureListener设计的“思维模式”:

  • PictureListener是一个接口和 未将WebView作为 参数
  • 另一方面,WebView有一个 用于关联一个对象的专用方法 用它来描绘画面。所以WebView “知道”关于PictureListener的事
  • 不要将WebView参数传递给PictureListener的构造函数,只需将
    onNewPicture()
    中的
    view
    参数强制转换到WebView中,并在WebView中调用访问其中任何内容的方法即可