2013-08-08 3 views
0

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

По существу, я хочу свести к минимуму количество кода (и, следовательно, работу и возможные осложнения), создав базовую услугу, содержащую несколько из этих методов, а затем распространив ее во всех других сервисах.

Я не могу найти много информации в Интернете. Это возможно? Если да, то как мне это сделать? У меня была трещина, но она порождает активность, которую не обнаружили исключения.

Спасибо!

+2

Хмм, я не понимаю, почему вы не должны просто создавать абстрактную службу, расширяющую сервис, а затем расширять абстрактную службу. –

+0

+1 к абстрактной концепции обслуживания – Rarw

ответ

1

Посмотрите на this example на абстрактных классов. Хотя Effective Java предпочитает интерфейсы для абстрактных классов, основываясь на том, что вы описываете, это похоже на случай, когда абстрактный класс имеет смысл.

Абстрактный класс полезен, когда существует общий набор функций, которые будут выполняться членами класса, но фактическая реализация отличается. Классическим примером является GraphicObject - все формы нуждаются в методе рисования, но то, как квадрат рисует сам, отличается от круга.

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

0

До тех пор, пока ваш новый класс наследует только от одного класса. Single inheritance - это ограничение языка Java. Ваша иерархия классов может иметь произвольную глубину, но каждый класс может наследовать только один родитель.

Смежные вопросы