Size: a a a

Kotlin Community

2020 March 09

AT

Alexey Tkachenko in Kotlin Community
очень часто если в коде есть instanceOf, это говорит о нарушении open/close principle https://stackoverflow.com/a/20644357
источник

K

Kopusha in Kotlin Community
Quantum Harmonizer
Не понял тебя.
если не присвоить, то он не требует полноты
источник

AT

Alexey Tkachenko in Kotlin Community
но не всегда, конечно
источник

QH

Quantum Harmonizer in Kotlin Community
Kopusha
если не присвоить, то он не требует полноты
А, это да, я всегда пишу }.also { }
источник

AN

Alexander Nozik in Kotlin Community
Не надо путать is и даункаст.
источник

QH

Quantum Harmonizer in Kotlin Community
Хмм, а при чём здесь OCP?
источник

QH

Quantum Harmonizer in Kotlin Community
Alexander Nozik
Не надо путать is и даункаст.
А разница? Если is создаёт смарткаст
источник

AN

Alexander Nozik in Kotlin Community
Вот очень редко на самом деле. Тайп-чек - это тайп-чек.
источник

AT

Alexey Tkachenko in Kotlin Community
Согласен, возможно, редко. Но мне кажется, именно из-за этого он считается антипаттерном
источник

AN

Alexander Nozik in Kotlin Community
Alexey Tkachenko
Согласен, возможно, редко. Но мне кажется, именно из-за этого он считается антипаттерном
Верно. Но использование тайп-чека, скажем, для оптимизации - это очень распространенная вещь. Про диспатчеризацию я вообще молчу
источник

AT

Alexey Tkachenko in Kotlin Community
а что за диспетчеризация на инстансофах? не случай ли, как раз, нарушения OCP?
источник

AT

Alexey Tkachenko in Kotlin Community
Quantum Harmonizer
Хмм, а при чём здесь OCP?
https://howtodoinjava.com/design-patterns/open-closed-principle/
Там, в конце параграфа 3.1, приведён пример non-OCP-compliant кода
источник

K

Kopusha in Kotlin Community
просто либо надо перестать лицемерить и называть антипаттерном штуки, которые у каждого в коде либо всегда уточнять, почему антипаттерн. А то мимопробегал, is == говнокод!11, следующий. Синглтон еще антипаттерн, гоу грепать свой код на object.
источник

AN

Alexander Nozik in Kotlin Community
Alexey Tkachenko
а что за диспетчеризация на инстансофах? не случай ли, как раз, нарушения OCP?
Нет, это использование типов как меток
источник

AT

Alexey Tkachenko in Kotlin Community
Kopusha
просто либо надо перестать лицемерить и называть антипаттерном штуки, которые у каждого в коде либо всегда уточнять, почему антипаттерн. А то мимопробегал, is == говнокод!11, следующий. Синглтон еще антипаттерн, гоу грепать свой код на object.
Именно так. Просто человек спросил, почему instanceOf считается фу-фу, вот попытался объяснить
источник

AT

Alexey Tkachenko in Kotlin Community
Alexander Nozik
Нет, это использование типов как меток
А есть пример? Чота не соображу, что имеется в виду
источник

AL

Alexander Levin in Kotlin Community
Т.е. в общем-то снова сводится, есть ли контроль над всеми подтипами или нет. Есть - не страшно. Нету - страшно.
источник

AN

Alexander Nozik in Kotlin Community
Alexey Tkachenko
А есть пример? Чота не соображу, что имеется в виду
Представьте себе силед класс в яве
источник

AN

Alexander Nozik in Kotlin Community
Alexander Levin
Т.е. в общем-то снова сводится, есть ли контроль над всеми подтипами или нет. Есть - не страшно. Нету - страшно.
Если нету - тоже не страшно, если есть дефолт
источник

QH

Quantum Harmonizer in Kotlin Community
нууу с большой натяжкой
источник