При программировании на Android я заканчиваю тем, что писал родительское действие, которое расширяется несколькими другими. Немного как ListActivity
. Мое родительское действие расширяется Activity
. если я намереваюсь использовать a Map
или a List
, Я не могу использовать свое родительское действие в качестве суперкласса - дочернее действие может только расширить одно действие, очевидно. Как таковой я заканчиваю тем, что писал свои родительские операции с той же логикой для Activity
, ListActivity
, MapActivity
и т.д.
Что является мной, поиск является своего рода функциональностью/шаблоном разработки черты, которая помогла бы в этом случае. Какие-либо предложения?
Я получил базовую MyAbstractActivity extends Activity
, которая включает общую логику, и MyAbstractListActivity расширяет MyAbstractActivity
, имитирующую ListActivity
(раздувает макет) .R.id.list
, layout.R.id.empty
и т.д .; там мало что происходит).
Я использую делегат со всеми общими функциями. Это позволяет мне объединить все общие функции в одном классе для всех видов деятельности.
Все мои действия расширяют свою специальную активность, а затем реализуют общий интерфейс. Проблема с этим подходом заключается в том, что мне нужно реализовать все методы, определенные в интерфейсе, и вызвать соответствующий метод в объекте делегата. Этот код на данный момент состоит из 30 повторяющихся строк кода, и я думаю, что это не такая уж большая проблема.
Мне очень не нравятся ListActivity
, MapActivity
и т. Д. В основном это действия, которые просто добавляют один элемент представления в цена некоторой гибкости. Добавляя MapView
или ListView
к вашему XML соответствующим образом, вы получаете то же самое, что может напрямую расширять производный суперкласс Activity
. Так что просто не используйте по большей части какие-либо из этих классов SomethingActivity.