@oop_ru

Страница 116 из 785
Aleh
21.02.2017
19:48:18
Эм. И?
для интерфейсов наследование интерфейсов жи

Evgeniy
21.02.2017
19:48:25
а я где-то про наследование интерфейсов говорил?
я заметил что ты не говорил этого)

Sergey
21.02.2017
19:48:34
он видимо про extends, ну мол да. только в контексте классов

короч "классы по умолчанию должны быть final"

Google
Paul
21.02.2017
19:48:44
для интерфейсов наследование интерфейсов жи
Интерфейс — совокупность сигнатур.

guga
21.02.2017
19:48:46
дефолтные методы в интерфейсы
ещё немного и мы к трейтам так прийдём

Paul
21.02.2017
19:48:52
Хватит думать в джавистких терминах

Evgeniy
21.02.2017
19:49:02
думаем о php ?

Aleh
21.02.2017
19:49:14
Paul
21.02.2017
19:49:21
Sergey
21.02.2017
19:49:40
ещё немного и мы к трейтам так прийдём
ну скалисты это давно поняли

Paul
21.02.2017
19:49:54
ну скалисты это давно поняли
Раньше которых поняли это хаскелисты?

Sergey
21.02.2017
19:50:06
Хватит думать в джавистких терминах
сейчас подумал - а напомни зачем наследовать интерфейсы?

Paul
21.02.2017
19:50:06
В скале это, кстати, редко используется

И многие кодстайлы запрещают имплиситы

Aleh
21.02.2017
19:50:54
сейчас подумал - а напомни зачем наследовать интерфейсы?
почему бы не иметь два маленьких интерфейса?

Google
Paul
21.02.2017
19:50:59
сейчас подумал - а напомни зачем наследовать интерфейсы?
Чтобы писать не T: Eq + Ord + Zero + One + Mul<T> + Add<T>, а просто T: Number

Sergey
21.02.2017
20:00:10
для расширения.
зачем расширять интерфейс то? Я их наоборот сегригировать стараюсь

Sergey
21.02.2017
20:00:47
ну в таком ключе ладно

guga
21.02.2017
20:00:53
а если это маркер-интерфейс?

Sergey
21.02.2017
20:01:06
Paul
21.02.2017
20:01:10
guga
21.02.2017
20:01:34
и ты делаешь их иерархию

Paul
21.02.2017
20:01:38
Ну добавь в Numer ещё и Copy и какой-нибудь Atomic

Скажем, маркер Copy (скопировать память) наследует маркер Clone (склонировать объект)

guga
21.02.2017
20:02:34
а как провернуть иерархию без наследования то?

в интерфейсах

Paul
21.02.2017
20:03:04
Ты точно мне адресуешь вопрос?

Sergey
21.02.2017
20:03:26
guga
21.02.2017
20:03:35
Paul
21.02.2017
20:03:40
наследование типов норм.
только интерфейсов

Sergey
21.02.2017
20:05:39
только интерфейсов
а если назвать это не наследованием а композицией?)

Sergey
21.02.2017
20:06:48
скорее мешанина из миксинов))

Google
Paul
21.02.2017
20:07:39
Композиция вынуждает тебя плодить сущности. Скажем, с наследованием можно сказать "реализуй Б, но сначала А", т.е. Б:А. С композицией же придётся выделить часть из Б и будет что-то вроде: Б:Б'+A

Aleh
21.02.2017
20:08:38
чет сложна вы сегодня начали

guga
21.02.2017
20:09:10
чет сложна вы сегодня начали
а мне норм, вовремя заглянул на огонёк.

Sergey
21.02.2017
20:10:34
можешь для тех, кто тяжелее соображает, более развернуто?)
он про то что "если композиция то интерфейс B не должен добавлять сигнатуры а лишь объеденять A и B'"

Aleh
21.02.2017
20:10:41
а

Paul
21.02.2017
20:10:52
угу

Sergey
21.02.2017
20:11:00
ну короч ладно, мне любой вариант по душе покуда реализации нет

Paul
21.02.2017
20:11:11
Угу

Sergey
21.02.2017
20:11:34
ну то есть интерфейс = абстракция, код не реюзается, реюазются только абстракции. Наследование обычно юзают имено для реюза вещей.... потому с абстракцимми норм

Evgeniy
21.02.2017
20:13:05
только вот всяких фреймворках и тд эти идеи не разделяют)))

там везде наследование))) особенно в php

но они же эксперты

Paul
21.02.2017
20:13:38
Альтернатив не особо-то и есть там

Либо пиши лишний код

Evgeniy
21.02.2017
20:13:56
композиция

Paul
21.02.2017
20:13:58
Увы, типажи/импилиситы не везде завезли

Evgeniy
21.02.2017
20:14:05
проксирование)

Google
Paul
21.02.2017
20:14:10
Лол, имплиситы даже в жс завезли по факту

Aleh
21.02.2017
20:14:10
трейты есть ха

Paul
21.02.2017
20:14:28
Прям те самые?

Sergey
21.02.2017
20:14:34
нет конечно

Aleh
21.02.2017
20:14:39
))

Paul
21.02.2017
20:14:45
/thread

/thread

Sergey
21.02.2017
20:14:50
в пыхе трейты это механизм копипасты кода

Admin
ERROR: S client not available

Paul
21.02.2017
20:15:02
Хм. Миксины?

Aleh
21.02.2017
20:15:07
да

Sergey
21.02.2017
20:15:14
ну тоже не совсем

Paul
21.02.2017
20:15:20
Ну вот, всё ещё сильнее запуталось

ну тоже не совсем
Ну опиши для совсем несведущих в пыхе

Sergey
21.02.2017
20:16:16
нуууу.. трейты в пыхе не влияют на типы

то есть ты средствами интроспеции можешь например глянуть что он там за трейт юзает, но.... по сути это просто механизм устранения дублирования кода

тип хочешь Comparable интерфейс запилить для кучи вещей - не вопрос

пишешь трейт но в каждом объекте помимо трейта надо еще интерфейс жахнуть что бы все было четко

Evgeniy
21.02.2017
20:17:55
интерфейс жахнуть в php7

или в 7.1 не помню точно появилось

Google
Sergey
21.02.2017
20:18:09
5.3

Evgeniy
21.02.2017
20:18:11
если прямо в трейте

Sergey
21.02.2017
20:18:23
если прямо в трейте
была RFC но ее не приняли

Evgeniy
21.02.2017
20:18:23
интерфейс жахнуть прямо в трейте

Sergey
21.02.2017
20:18:43
точнее как, автор фичи забил на нее слегка

da horsie
21.02.2017
20:18:45
https://wiki.php.net/rfc/traits-with-interfaces

Sergey
21.02.2017
20:19:06
да, она

Aleh
21.02.2017
20:19:26
Evgeniy
21.02.2017
20:20:10
я тоже rfc читал

но думал ее приняли логичная же доработка

Paul
21.02.2017
20:20:20
а это ты про что?
Array.prototype[hash] = function (hasher) { for (const item of this) hasher.update(item); };

Evgeniy
21.02.2017
20:20:30
ну да и бог с ней

Aleh
21.02.2017
20:21:10
Array.prototype[hash] = function (hasher) { for (const item of this) hasher.update(item); };
ну совать что-то в прототип встроенных функций прям ваще не очень идея

Paul
21.02.2017
20:21:12
Array.prototype[hash] = function (hasher) { for (const item of this) hasher.update(item); };
Как-то накидали либу, чтобы описывать типажи и реализации. Что интересно, с declare и TS и flow подхватывают

Это было не ок, когда не было символов

Aleh
21.02.2017
20:21:38
а

ну ладно

Paul
21.02.2017
20:21:43
И да, движки отлично сейчас hidden классы перестраивают

Прям сегодня замеры делали

Aleh
21.02.2017
20:22:49
не, я только про не символы

Страница 116 из 785