Android Activity - Финальный класс или нет? - PullRequest
2 голосов
/ 27 ноября 2011

Согласно этому SO и тестам производительности

Можно предположить, что определение классов как public final class лучше для производительности.

Должны ли мы делать то же самое с операциями Android, поскольку они в основном не используются для создания подклассов?

public final class LoginActivity extends Activity { ... }

Ответы [ 2 ]

6 голосов
/ 27 ноября 2011

Обычно безопасная ставка - сделать все ваши классы абстрактными или окончательными.

Таким образом, становится ясно, нужно ли разрабатывать класс для наследования.

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

Таким образом, вы избавляетесь от необходимости разрабатывать все свои классы для наследования, и в то же время вы получаете поддерживаемый код с ясными намерениями.

4 голосов
/ 27 ноября 2011

Я никогда не видел, чтобы кто-нибудь, включая Google, делал это в коде.Нам сказали, что Dalvik VM высоко оптимизирован сам по себе, и из этого можно сделать вывод, что беспокойство по поводу объявления финала Activities не приведет к заметному увеличению производительности.Каждый объявляет класс final обычно по причинам, не связанным с производительностью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...