Size: a a a

2021 May 31

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
хз, может в Дарт по-другому и нельзя...
Мне в классах не нравится жёстко завязывать конструктор только к одной реализации кодаты.
Мне нравится птсать и переиспользовать дату отдельно от кодаты - и таким образом отпадает потребность в наследовании
источник

P

Purple in ФП
Оно в примере с несколькими и есть :)
источник

P

Purple in ФП
Так базовый класс же без реализации :) Вот полное определение класса Model:

@immutable
abstract class Model {
 const Model();
}
источник

P

Purple in ФП
Оно ни к чему не привязывает, но в условиях ООП-Дарта дает удовлетворимую безопасность
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
В Дарте нет мульти-наследования? Если нет, то ждите жалоб пользователей, что нельзя заэкстендить от чего-то другого (и сделать это моделью)
источник

P

Purple in ФП
В плане ромбиком? :) Нету, но оно и не потребуется, у модели не должно быть никакой функциональности
источник

R

Rafael in ФП
Только что посмотрел, там миксины есть. Не подойдут?
источник

P

Purple in ФП
Они совсем не нужны в модели :) Но если зачем-то приперло – да, миксинами
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
миксины/трейты/декораторы (как их только не называли) - всё от противного - пытаемся бороться с проблемами, порождёнными наследованием (симптомами) вместо того, чтоб просто использовать композицию
источник

P

Purple in ФП
Если человеку потребовалось наследовать модель от чего-то – он неверно понимает пакет :)
источник

R

Rafael in ФП
Наверное миксины от тайпклассов мало чем отличаются, кроме определения после объявления класса 🤔
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
тайп-классы и классы в ЯП для объектов - это вообще ортогональные темы. тайп-классы можно и без классов писать (чисто на конструкторах объектов)
источник

АГ

Александр Гранин... in ФП
Гм, гм, я бы про тайп классы и объекты такого утверждения делать не стал
источник

АГ

Александр Гранин... in ФП
То, что тайп классы к ООП классам не имеют отношения - это да. Неудачное название. Но и на объектах этого тоже не сделаешь. Нужен специальный вид статического полиморфизма. Трейты в Расте или концепты в С++
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
Уточню. Я пишу на тайпскрипт - и легко обхожусь без ключевого слова "class". Благо, джаваскрипт умеет делать объекты не используя классы
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
а, и ещё, в тайпскрипте же duck-typing - можно заматчить объект к типу, даже не имплементируя интерфейс, а просто его реализовав
источник

АГ

Александр Гранин... in ФП
Ключевое отличие тайп классов от много чего прочего - что тайп классы - это логика и предикаты в статике. А вот миксины, насколько я знаю, - динамика. А наследование - динамика по умолчанию. Там нет компилятора, который бы решал задачки на предикаты
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in ФП
Что вы имеете в виду под "предикаты в статике"? Тайпскрипт существует только во время компиляции - в рантайме только джаваскрипт без типов
источник

АГ

Александр Гранин... in ФП
Трейты еще худо-бедно можно сопоставлять с тайп классами, потому что трейты - это статическая доп информация, навешанная на тип. Включая другие типы
источник

АГ

Александр Гранин... in ФП
Я с тайп скриптом не знаком, может, в нем и правда конструкторы объектов волшебным образом в компайл тайме работают
источник