
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

guga
21.02.2017
19:50:58

Google

Paul
21.02.2017
19:50:59

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

Paul
21.02.2017
20:00:40

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

Aleh
21.02.2017
20:09:57

Sergey
21.02.2017
20:10:34

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:12:47

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

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

Paul
21.02.2017
20:21:12
Это было не ок, когда не было символов

Aleh
21.02.2017
20:21:38
а
ну ладно

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

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