Какое влияние на производительность оказывают запечатанные классы в контексте Android? - PullRequest
0 голосов
/ 03 декабря 2018

В Android рекомендуется воздержаться от использования enum из-за проблем с производительностью.Это верно до недавнего времени, когда в Google IO 2018 было объявлено, что перечисления теперь безопасны в использовании, хотя избегать их все же рекомендуется для более производительного приложения.

Мой вопрос:

Можетмы широко используем запечатанные классы kotlin в Android?

Кажется, что запечатанные классы являются расширением перечислений.Если да, то должны ли мы использовать закрытые классы, подобные перечислениям?

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

Совет держаться подальше от enum на Android преувеличен.Избегание перечислений имеет смысл для API-интерфейсов Android: они интенсивно используют специальные константы, очень многие из этих объектов живут в приложении, и они критически важны для производительности.

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

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

0 голосов
/ 03 декабря 2018

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

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