Интерфейс в аргументе или возвращаемое значение.

avatar y6ejushe

70

8

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

y6ejushe

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

Например в фабрике так делают. Но насколько это вообще адекватно? 

Karasiq

Пользователь

Регистрация: 17.03.2020

Сообщения: 170

Рейтинг: 81

Karasiq

Регистрация: 17.03.2020

Сообщения: 170

Рейтинг: 81

За полиморфизм слышал, брат?

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

y6ejushe

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

Karasiq сказал(а):

За полиморфизм слышал, брат?

Нажмите, чтобы раскрыть...

Ну да, ну я тогда просто буду интерфейсы всегда передавать, а шо?

ttutiki

Пользователь

Регистрация: 28.09.2013

Сообщения: 1802

Рейтинг: 614

ttutiki

Регистрация: 28.09.2013

Сообщения: 1802

Рейтинг: 614

... А под маской интерфейса прятался конкретный класс! roflanwtf.png?1616515078

 

Уточни вопрос, что по твоему тут не так? 

pyles

Пользователь

Регистрация: 23.06.2013

Сообщения: 19835

Рейтинг: 9945

Нарушения: 45

pyles

Регистрация: 23.06.2013

Сообщения: 19835

Рейтинг: 9945

Нарушения: 45

ttutiki сказал(а):

... А под маской интерфейса прятался конкретный класс! roflanwtf.png?1616515078

 

Уточни вопрос, что по твоему тут не так? 

Нажмите, чтобы раскрыть...

ты лучше не спрашивай чем отличается абстрактный класс от интерфейса, потому что после этого вопроса

в маршрутке пхпшников начался сущий кошмар.

я не эксперт в пхп, но разве он настолько ооп, что там есть абстрактная фабрика?

может там еще и реактив есть с паттерном сабскрайбер? d2happy.gifd2happy.gif

я ряльна есть https://reactphp.org/

может пхп не мертв еще?

graffitcrab

Пользователь

Регистрация: 03.07.2014

Сообщения: 8429

Рейтинг: 4974

graffitcrab

Регистрация: 03.07.2014

Сообщения: 8429

Рейтинг: 4974

y6ejushe сказал(а):

Например в фабрике так делают. Но насколько это вообще адекватно? 

Нажмите, чтобы раскрыть...

Связывать всё интерфейсами - очень даже адекватно, таким образом ты оперируешь абстракциями, связи начинают строится от интерфейса а не от реализации, и вообще, при желании ты в будущем сможешь передавать туда даже что-то кастомное, чего ранее не задумывалось. Или подменять реализацию на какую тебе хочется, ниче не сломав. Главное что класс реализует данный интерфейс, а кто он - всем насрать и в этом сила. Хотя многие это называют оверинженерингом и на деле мало кто вообще это через интерфейсы юзает, чаще через абстрактные классы, т.к. людям просто впадлу писать интерфейсы.

y6ejushe

Пользователь

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

y6ejushe

Регистрация: 24.10.2021

Сообщения: 12762

Рейтинг: 2194

Нарушения: 25

pyles сказал(а):

ты лучше не спрашивай чем отличается абстрактный класс от интерфейса, потому что после этого вопроса

в маршрутке пхпшников начался сущий кошмар.

я не эксперт в пхп, но разве он настолько ооп, что там есть абстрактная фабрика?

может там еще и реактив есть с паттерном сабскрайбер? d2happy.gifd2happy.gif

я ряльна есть https://reactphp.org/

может пхп не мертв еще?

Нажмите, чтобы раскрыть...

Абстрактный класс имеет реализацию методов, интерфейс только сигнатуру. В чем кошмар? Почему я каждый раз так ору с тебя?))

Ga Ran

Пользователь

Регистрация: 16.01.2020

Сообщения: 104

Рейтинг: 56

Ga Ran

Регистрация: 16.01.2020

Сообщения: 104

Рейтинг: 56

похоже на бред. Зачем кормить фабрику интерфейсами? Сделай несколько разных фабрик, если они сильно отличаются. Если нет, приведи к одному интерфейсу и используй полиморфизм.

Приведи адекватный юзкейс, хотя бы теоретический, что ты будешь с этим делать?

Я вот не могу придумать.