|
Изолированные классы
|
|||
---|---|---|---|
#18+
Привет, всех с пятницей) Натолкнулся недавно на понятие изолированные классы, почитал, посмотрел примеры, немного не вкурил. Можете дошкольнику объяснить на пальцах что это такое и какая у них сфера применения?) ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 21:55 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Как этот термин звучал в англоязычном варианте? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:09 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
sealed? для чего, написано в первоисточнике https://openjdk.java.net/jeps/360 Goals Allow the author of a class or interface to control which code is responsible for implementing it. Provide a more declarative way than access modifiers to restrict the use of a superclass. Support future directions in pattern matching by underpinning the exhaustive analysis of patterns. Non-Goals It is not a goal to provide new forms of access control such as "friends". It is not a goal to change final in any way. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:24 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
https://habr.com/ru/company/otus/blog/527928/ Запечатанные классы ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:24 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton Как этот термин звучал в англоязычном варианте? Sealed. Вадя уже скинул ссылку, читаю, идея пока ускользает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:39 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Я помню этот термин. Я его читал у Хорстмана в его Scala-книжке. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:48 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Брайн Гоетс его предложил в 2019 году и получается что в JDK-15 уже имплементировано судя по этой бумажке. https://openjdk.java.net/jeps/360 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.11.2020, 22:50 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
chpasha, Я почитал, там один из примеров понятен, одно из назначений такого типа класса- Изолированный класс позволяет указывать, какие классы ( по аналогии с implements, где мы перечисляем обязательные к реализации методы) могут его наследовать. Это понятно, в принципе полезно. Но дальше начинается кислота ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 00:32 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Если лично вам не требуется сложный дизайн иерархии классов - это ещё ничего не значит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 00:35 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Basil A. Sidorov Если лично вам не требуется сложный дизайн иерархии классов - это ещё ничего не значит. Согласен, более того, даже если вам все таки требуется сложный дизайн иерархии классов-- это тоже ещё ничего не значит. О_О Я в джаве относительно новичок, у меня иерархия глубиной дай бог классов в 3 Имею в виду именно структурное взаимодействие. Понимаю о чем вы. Тяжело без крупных проектов и практики в общем втащить это понятие) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 00:55 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Эти многие пропозиции в JCP как и в комитетах С++ появляются не из космоса. Вся функциональщина (lambda, e.t.c.) была создана еще в середине 20-го века. И многие идеи которые кажутся новыми на самом деле уже много раз пережевывались в других языках и системах. Мне тут чем интересна отсылка к Scala. Книга 2013 года. Фича Sealed уже существовала. И я думаю интересно проследить ее генезис. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:05 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Не ну вовремя чо, и 10 лет не прошло По иронии судьбы сделали sealed в java когда в скале сделали им нормальную замену в виде енумов(единственное что было хуже в скале чем в джаве).Если честно не понимаю смысла совсем, учитывая что алгебраические типы данных вряд-ли взлетят, паттерн матчинг тоже кастрированный, да и реально в джаве крутые енумы, нафиг огород городить.. Goetz вроде умный мужик же, но все никак не поймет что нету особого смысла пытаться делать java более функциональной не убирая мутабельность. А мутабельность не ограничить из-за обратной совместимости. С опшионалом обосрались, стримы тоже такое себе.. единственное что лямбды сделали более менее, но и те из-за слабого inference корявенькие. Теперь вот обсер с паттерн матчингом и sealed. Хотя вот рекорды смотрятся ещё симпатично, если бы не невозможность добавлять методы и поля Короче джава медленно но верно превращается в винегрет возможностей, но в отличие от скалы без связующей парадигмы. Переходили б уже на Котлин что-ли и не мучали старушку джаву ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:12 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Давайте придумаем софистический пример. Я вот только что придумал. (это в Scala) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:18 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Блин по теме то совсем забыл В общем, тебе как обычному джава программисту этот sealed не впился. Это скорее задел на будущее, видимо в дальнейшем будут пытаться протянуть алгебраические типы данных и typeclass паттерн. На данный момент вижу два более мене осмысленных применения sealed 1) Для особо упоротых это возможность дать понять JVM что вариантов реализации мало и компилятор может соптимизмровать на времени вызова подставив би- либо триморфный вызов вместо динамического диспатча. Ключевое слово упоротых 2) Если делаешь паттерн матчинг на объекте с типом интерфейса и не предоставляет ветку для какого-либо подкласса то компилятор сгенерирует ворнинг, мол лажа у тебя и этот подкласс никак не обрабатывается. Почему нельзя просто взять енум остаётся загадкой ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:21 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton, И чем энум не устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:23 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
забыл ник mayton, И чем энум не устраивает? Погоди. Дай закончу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:28 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Как-то так. 100% детерминизм матчинга. И этот матчинг в фазе компилляции уже проверен. В нем не будет новых и неизвестных классов и мы никогда не получим ошибку даункастинга к неизвестному новому наследнику. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:33 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
И здесь не нужен полиморфизм. Оптимизирующий компиллятор (не Java а другой) может использовать широкий спектр подходов чтобы вообще его убрать. ООП приходит смерть. На арену выходит ФП. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:35 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Хотя может я ошибаюсь. Может default case нужен. Но у нас -же пятница? не? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:37 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton, Так чем енам то не подходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:37 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Дружище я на самом деле не силен во всех фичах Scala. Давай я закину тебе еще идейку. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:38 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:40 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton Дружище я на самом деле не силен во всех фичах Scala. Давай я закину тебе еще идейку. Так мы про джаву же. Про скалу все и так понятно, в общих чертах ты правильно описал. Только вот эту трихомандию с sealed по историческим причинам сделали потому что не было нормальных енумов. А в скале 3 их наконец-то запили Ржачно конечно получается ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:40 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
mayton Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Сильно сомневаюсь что джава версия паттерн матчинг а такое позволит. Именно про это я и веду речь, если поле message мутабельное это акций гемор ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:43 |
|
Изолированные классы
|
|||
---|---|---|---|
#18+
А я всем говорю - курите первоисточник. Всё что JCP предлагает - это вторичные пережованные идеи. Очень мало в программировании нового в наше время. Можно назвать новым применение глубоких нейросеток - но это мать ево НЕ программирование а математика. Там по настоящиму надо учиться. И не спринг с хибернейтом. Что вообще вы можете назвать новым? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.11.2020, 01:49 |
|
|
start [/forum/topic.php?fid=59&msg=40018191&tid=2120616]: |
0ms |
get settings: |
25ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
402ms |
get tp. blocked users: |
1ms |
others: | 299ms |
total: | 807ms |
0 / 0 |