Недавно я столкнулся с ситуацией, когда мне нужно было создать собственный VideoView в мое приложение для Android. Мне нужен был доступ к объекту MediaPlayer и добавить слушателей.
К сожалению (для меня), все члены класса VideoView являются закрытыми, поэтому даже расширение класса не помогло бы мне получить доступ к его объекту MediaPlayer (или чему-либо еще), мне пришлось сделать полную копию класса с моим модификации.
Что ж, хотя это звучит так, как будто я жалуюсь на «тяжелую работу», в данном случае это проще, чем расширение класса (поскольку весь исходный код доступен...), но это заставило меня сильно усомниться в этом методе получения информации. прячется. Это лучшая практика, чем оставлять основные компоненты доступными для изменения/доступа (защищенными, а не общедоступными)? Я имею в виду, я понимаю, что если я расширим класс VideoView, когда-нибудь, возможно, они что-то изменят в VideoView, и у меня могут быть проблемы, но если они изменят класс, моя собственная (дубликат) версия будет иметь большее отличие от класса VideoView, и моей целью является не создание собственного видеопросмотра, а расширить доступный VideoView.