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