Шаблон разработки для расширения операций Android?

При программировании на Android я заканчиваю тем, что писал родительское действие, которое расширяется несколькими другими. Немного как ListActivity. Мое родительское действие расширяется Activity. если я намереваюсь использовать a Map или a List, Я не могу использовать свое родительское действие в качестве суперкласса - дочернее действие может только расширить одно действие, очевидно. Как таковой я заканчиваю тем, что писал свои родительские операции с той же логикой для Activity, ListActivity, MapActivity и т.д.

Что является мной, поиск является своего рода функциональностью/шаблоном разработки черты, которая помогла бы в этом случае. Какие-либо предложения?

5
задан naXa 7 August 2016 в 18:02
поделиться

3 ответа

Я получил базовую MyAbstractActivity extends Activity , которая включает общую логику, и MyAbstractListActivity расширяет MyAbstractActivity , имитирующую ListActivity (раздувает макет) .R.id.list , layout.R.id.empty и т.д .; там мало что происходит).

1
ответ дан 14 December 2019 в 19:06
поделиться

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

1
ответ дан 14 December 2019 в 19:06
поделиться

Мне очень не нравятся ListActivity , MapActivity и т. Д. В основном это действия, которые просто добавляют один элемент представления в цена некоторой гибкости. Добавляя MapView или ListView к вашему XML соответствующим образом, вы получаете то же самое, что может напрямую расширять производный суперкласс Activity . Так что просто не используйте по большей части какие-либо из этих классов SomethingActivity.

3
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: