metaclass: (дзедline)
[personal profile] metaclass
http://avva.livejournal.com/2581700.html
Все, что было полезного в ООП, унесли в другие парадигмы (если оно раньше еще оттуда не было заимствовано), остальное решили закопать :)
(deleted comment)

Date: 2013-03-13 01:02 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Считается. Потому, что self-type или extends пишутся один раз, а квалификаторы не пишутся много раз.
(deleted comment)

Date: 2013-03-13 01:12 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Более полный пример:
object Module extends Part1 with Part2 with Part3
trait Part1 { self: Module => ... }
trait Part2 { self: Module => ... }
trait Part3 { self: Module => object NestedModule { ... } }


Все определения из PartX можно использовать в любом PartY без квалификатора. Чтобы использовать определения из NestedModule, нужно или юзать квалификатор, или написать import NestedModule._.
(deleted comment)

Date: 2013-03-13 01:21 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Как скажете. Наверное, я не очень хорошо объяснил, но у меня, к сожалению, на более развернутый рассказ нет времени.

Одно хочу сказать - лично я после перехода с сишарпа на скалу стал писать гораздо меньше импортов.
(deleted comment)

Date: 2013-03-13 01:48 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Согласен. Я бы рад помочь, на это как раз и нет времени.

Мне кажется, "жутко" тут получается потому, что незнакомо.
Edited Date: 2013-03-13 01:48 pm (UTC)
(deleted comment)

Date: 2013-03-13 01:54 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
А где в том примере декларативщина? Или вы про Скалу вообще?
(deleted comment)

Date: 2013-03-13 02:01 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Скала любая.

Date: 2013-03-13 01:55 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Слушай, а вот оные объекты, собранные из частей - это ж получается типа синглетонов - т.е. анонимный класс и один его экземпляр?

Date: 2013-03-13 02:03 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Ну да, они так и реализованы. Но мне лично проще думать о них как о first-class неймспейсах - какая-то именованная штука, внутри которой есть другие штуки.

Date: 2013-03-13 02:07 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Но формально такой объект можно использовать как хранилище какого-нибудь состояния? Например, в качестве кэша над коннектом к БД.

Date: 2013-03-13 02:10 pm (UTC)
From: [identity profile] xeno-by.livejournal.com
Да. В модулях могут быть не только определения методов и вложенных классов и модулей, но и стейт.

Date: 2013-03-14 01:52 am (UTC)
From: [identity profile] jdevelop.livejournal.com
ребе, выложите наконец свой код на гитхаб, и будем смотреть

Profile

metaclass: (Default)
metaclass

April 2017

S M T W T F S
      1
2345678
9101112 131415
16171819202122
23242526272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 17th, 2025 07:35 am
Powered by Dreamwidth Studios