Size: a a a

var chat = new Chat();

2021 May 11

YM

Yury Morozov in var chat = new Chat();
Ты справляешься за 2 класса
источник

YM

Yury Morozov in var chat = new Chat();
Ну или класс и интерфейс
источник

E

Etki in var chat = new Chat();
Нарушает SRP

И чот я не могу придумать внятного примера, где это нужно, как и с абстрактным классом
источник

E

Etki in var chat = new Chat();
Шарп на удивление хорош с этим (в принципе, уже и удивляться не приходится). Блядская джава запретит имплементировать два одноименных метода разных интерфейсов, а тут изи.
источник

VD

Vitaly Deev in var chat = new Chat();
Не, я понимаю в примерно, чем множественное хорошо и чем плохо. В большинстве случаев, профиты множественного наследования можно обойти,  но, я думаю, можно найти примеры реального кода, когда целая иерархия сложная наследований и отношение "содержит" между классами невыразительным будет.
источник

VD

Vitaly Deev in var chat = new Chat();
Просто интересно было в каких случаях в реальных ситуациях это будет прямо полезно. Ну вот иметь разные реализации для разных интерфейсов, при этом без необходимости реализовывать в дочернем классе - это наверное и есть такая ситуация
источник

ВE

Виталий EasyMod... in var chat = new Chat();
дич какая то. как 20 лет ооп в шарпе кодили без этого
источник

YM

Yury Morozov in var chat = new Chat();
Смотри, вот нужен какой-то метод для версионного контроля объектов. Например, создать новую версию. У вас бизнес фреймворк. Вы хотите чтобы несколько классов были версионированы.  И сейчас у вас нет вариантов как выносить это в какую-то иерархию наследования. Если можно повесить базовую реализацию на интерфейс, то достаточно унаследовать интерфейс.
источник

YM

Yury Morozov in var chat = new Chat();
В результате вместо 20 разных вариантов базовых классов у вас идеально понятный код
источник

ВE

Виталий EasyMod... in var chat = new Chat();
а пхп вобще есть trait - просто присоеденяет 1 класс к другому, давая возможность классу использовать всё то, что есть в присоеденяемом. даже наследоваться и отдельно реализовывать не нужно. давайте в сишарп такую практику введём - удобно же
источник

VD

Vitaly Deev in var chat = new Chat();
пишут, что вот эта реализация и есть попытка trait сделать
источник

VD

Vitaly Deev in var chat = new Chat();
Отчасти
источник

E

Etki in var chat = new Chat();
При версионировании делается хуйня, которая грейдит старую структуру к новой и оставляет один класс.
источник

YM

Yury Morozov in var chat = new Chat();
Вопрос не в том, что нельзя без этого, вопрос в том, что некрасиво реализация выглядит
источник

YM

Yury Morozov in var chat = new Chat();
Я сейчас для этого использую всякую хероту вплоть до рефлексии
источник

ВE

Виталий EasyMod... in var chat = new Chat();
рефлексия это норма
источник

ВE

Виталий EasyMod... in var chat = new Chat();
топ фича
источник

YM

Yury Morozov in var chat = new Chat();
Чтобы Вася сука просто писал : IVersionedObject без необходимости определять методы
источник

YM

Yury Morozov in var chat = new Chat();
А так это просто и из коробки
источник

ВE

Виталий EasyMod... in var chat = new Chat();
нада пойти хоть погуглить нафига то версионирование вобще
источник