PictureListener, который имеет член данных WebView - имеет ли это смысл? - PullRequest
1 голос
/ 03 мая 2011

Как мы все знаем, PictureListener - это интерфейс с одним открытым методом: onNewPicture(WebView view, Picture picture).

Это работает для простых сценариев, но в моем случае мне нужно обрабатывать различные ошибки (из-за непредсказуемого непредсказуемого характера Интернета, особенно через WiFi / 3G).

Для этого я намерен создать немного более сложный класс, реализующий PictureListener и имеющий некоторую дополнительную информацию о состоянии и связанные функции-обработчики. Пока все хорошо, но ...

Одна из функций нуждается в доступе к WebView - к тому же WebView, который передается в качестве параметра в onNewPicture(), но недоступен для PictureListener где-либо еще.

Итак, я думал о передаче этого WebView в качестве параметра конструктору MyPictureListener и сохранении его как частного элемента данных.

Я не видел ни одного примера такой реализации ранее, и я не уверен, буду ли я нарушать правило, с которым я не знаком.

Имеет ли смысл PictureListener, имеющий элемент данных WebView? Есть ли подводные камни, о которых я должен знать?

1 Ответ

1 голос
/ 03 мая 2011

Нет, это не так.

Вы не будете нарушать правила, но будете идти против "мышления" дизайна WebView & PictureListener:

  1. PictureListener - это интерфейс и не получает WebView как параметр.
  2. WebView, с другой стороны, имеет специальный метод для привязки PictureListener с этим. Так что WebView "знает" о PictureListener.

Вместо того, чтобы передавать параметр WebView в конструктор PictureListener, просто приведите параметр view в onNewPicture() к вашему WebView и вызовите метод в вашем WebView, который обращается к чему-либо в нем.

...