Size: a a a

StartAndroid Ru Chat

2021 February 18

SS

Stas Stahma in StartAndroid Ru Chat
ну это не только модно, это еще и удобней. => Проект легче поддерживать, читать и понимать
источник

Ф

Фёдор in StartAndroid Ru Chat
Vladyslav Lozytskyi
просто посмотрите что котлин делает под капотом и Вам станет ясно.
var test: String = "" 
сгенерирует байткод аналогичный следующему:
private String test = "";

void setTest(test : String) { this.test =  test; }
String getTest() { return test; }
Да я понимаю, я просто пытаюсь следовать инкапусляции
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Фёдор
Да я понимаю, я просто пытаюсь следовать инкапусляции
Я понимаю, но котлин не Java. public var уже даст инкапсуляцию в байткоде.
источник

Н

Нурчик in StartAndroid Ru Chat
Всем привет , а можно ли найти открытие апишки с дизайном😂 для тестирования
источник

Ф

Фёдор in StartAndroid Ru Chat
Имхо инкапсуляция и инкапсуляция в байткоде это разные вещи
источник

SK

Sergey Kharuk in StartAndroid Ru Chat
Sergey Panov
А что с проектом не так что его нужно переписывать на Котлин?
все гууд.
проблем никаких.
1ая причина - Просто для того, чтобы проект соответствовал нынешним технологиям.
2ая - есть шансы, что заказчик в будущем захочет это сделать. А в данный момент тасок нету, и есть возможность заняться переписывание сейчас.
3я - практика для себя)
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Фёдор
Имхо инкапсуляция и инкапсуляция в байткоде это разные вещи
в моем примере нет, поведение что Java что Kotlin получается абсолютно идентичным - и там и там есть доступ через сеттер/геттер
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
я считаю, что вы делаете backing field это просто для "визуального удовлетворения". Весь этот сахар с public var был специально придуман для того чтобы так не делать, но привычка есть привычка)
источник

Ф

Фёдор in StartAndroid Ru Chat
Vladyslav Lozytskyi
я считаю, что вы делаете backing field это просто для "визуального удовлетворения". Весь этот сахар с public var был специально придуман для того чтобы так не делать, но привычка есть привычка)
Возможно и привычка, но я воспринимаю инкапсуляцию как сокрытие внутренней реализации от того, кто использует класс
источник

SP

Sergey Panov in StartAndroid Ru Chat
Sergey Kharuk
все гууд.
проблем никаких.
1ая причина - Просто для того, чтобы проект соответствовал нынешним технологиям.
2ая - есть шансы, что заказчик в будущем захочет это сделать. А в данный момент тасок нету, и есть возможность заняться переписывание сейчас.
3я - практика для себя)
Все три причины на мой взгляд не существенные. На Вашем бы месте я бы действовал по принципу "работает - не трожь"
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
я сам когда переходило на котлин продолжал делать сеттеры и гетеры еще с месяц. Смысл, если котлин делает это за Вас)
источник

Ф

Фёдор in StartAndroid Ru Chat
Ну, в случае с классом в стиле Point(var x: Int, var y: Int) я согласен
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Фёдор
Возможно и привычка, но я воспринимаю инкапсуляцию как сокрытие внутренней реализации от того, кто использует класс
ну так все верно. Если Вам нужна "сокрытая логика" более сложная чем присвоение то дописываете сеттер как вам надо. Снаружи как переменная, внутри Ваша логика

var test: String = ""
   set(value) {
   }
источник

Ф

Фёдор in StartAndroid Ru Chat
Но в случае с вьюмоделью писать viewModel.setEmail(email) по ощущениям более правильно, чем viewModel.email.value = email
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Фёдор
Но в случае с вьюмоделью писать viewModel.setEmail(email) по ощущениям более правильно, чем viewModel.email.value = email
а мне первый не нравится, первый это Java подход, есть даже котлин анализаторы которые предлагают второй вариант как правильный и привычный для котлина
источник

Ф

Фёдор in StartAndroid Ru Chat
Я и говорю, что возможно не отвык от джавы еще
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
мне даже студия предлагает везде где я использую сеттеры заменить на value = (где это возможно). Подчеркивает как варнинг.
источник

V

Vladushka in StartAndroid Ru Chat
Sergey Kharuk
все гууд.
проблем никаких.
1ая причина - Просто для того, чтобы проект соответствовал нынешним технологиям.
2ая - есть шансы, что заказчик в будущем захочет это сделать. А в данный момент тасок нету, и есть возможность заняться переписывание сейчас.
3я - практика для себя)
лучше тогда уже с нуля для себя пописать )
источник

V

Vladushka in StartAndroid Ru Chat
Vladyslav Lozytskyi
мне даже студия предлагает везде где я использую сеттеры заменить на value = (где это возможно). Подчеркивает как варнинг.
use property access syntax)
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Vladushka
use property access syntax)
именно он
источник