Да вообще & в типах выглядит как ошибка проектирования, как

по мне.
Давай подумаем без интерфейсов. Вот будет int&string – что это за зверь? "или" – еще ок, но "и" никуда не годится.

11 ответов

8 просмотров

не надо думать без интерфейсов )

Дмитрий- Автор вопроса

Для такого создаются композитные интерфейсы 🙂

Дмитрий- Автор вопроса

Можешь реальный пример с такой конструкцией, где композитный интерфейс вообще не подходит?

+

В дату нашу загляни

interface Decoder { public function decode(string $token): array; } interface Encoder { public function encode(array $payload): string; } final class JwtGuard implements Decoder, Encoder { ... } Где-то нужен Encoder, я внедряю Encoder. Где-то нужен Decoder, я внедряю Decoder. ISP соблюден. А где-то мне нужен и Encoder, и Decoder. У меня есть 2 варианта 1. Создать композитный интерфейс. Как назвать? Зачем он мне нужен? 2. Использовать напрямую JwtGuard. Вместо этого я делаю: public function registerUser(Encoder&Decoder $guard) {}

Дмитрий- Автор вопроса

И что будет внутри метода registerUser?

Это важно?

Дмитрий- Автор вопроса

Ты же можешь в пример добавить Encoder&Serializer. А то, что внутри будет мясо, об этом никто не поспорит. Такие примеры и возникают, что без конкретных примеров, которую должна решить эта доработка, всё выглядит "ого, было бы прикольно". А в коде выходит каша. Как ты решишь ситуацию, когда у двух интерфейсов есть метод с одним и тем же названием, но сигнатура разная?

Кажется, ты не понял, зачем нужно пересечение. То пример со string&int привел, то теперь это. Приводить намеренно не рабочие примеры – это такая стратегия в споре?

Дмитрий- Автор вопроса

И да, вот тебе и название нового интерфейса - Guard. Почему-то вопроса нейминга параметра функции у тебя не возникло :))

Похожие вопросы

Обсуждают сегодня

Это фейк @cruppto_newbot?
Antskup
13
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
всем салют сегодня утро заметил что бот не может отправлять фотки по url. ручками в браузере ссылка норм открывает фотки. падает ошибка 'Bad Request: failed to send message ...
Vasya Ivanov
9
Добрый день! На Odoo 16.0 через 1-2 дня перестают работать кроны. В логах одна только ошибка на момент, когда сработал последний крон. Может кто-то уже с этим разбирался?
Denis Валенчиц
3
ребят, привет. за какое время бот полученную заявку на вступление в группу может принять \отклонить? Помню речь была про 5 минут, сейчас как?
Роман Ромашин :)
10
1. странный лог. Обычно лог идет по времени сверху вниз, а у Вас наоборот. Как так вышло? 2. это odoo.sh ?
Alex Kom
3
Доброго времени суток. Правильно ли я понимаю, что с введением новой платежной единицы stars, я просто могу оставить текущую платёжку от Юкассы, которая выполняется на сайте с...
Prokhor Chulkov
7
Добрый день! Не подскажете как к модели Категории Шопоголика добавить отношение Тейлора. Пробовал по документации, но не получается. Мб уже кто-то делал?
Николай Афанасенко
6
@veranikaEU получилось? Можно увидеть рабочий код?
Alex Kom
8
Тут вопрос они парсить всех ботов будут на предмет услуг платных и смотреть платежные реализации? Или через стукачей будут вычислять индивидуально.
A O
5
Карта сайта