170 похожих чатов

Ребят, а вот смотря на последние неты, где в интерфейсах

можно логику описывать и реализовывать, какое отличие все же остались у абстрактного класса от интерфейса?

29 ответов

8 просмотров

ужасное мракобесие - сувать реализацию в интерфейсы

Класс может реализовать несколько интерфейсов, а наследоваться только от одного класса. Так было и так есть даже в послднем .нете. Кроме того, многие DI контейнеры рассчитаны на работу с интерфейсами, если тебе важно их использовать, выбора особо нет

Я на собесах отвечаю так. За общим различиям с старых версий конечно. Интерфейсы используются как гарантированное предоставление реализации общего интерфейса определенного функционала. IDispose IEnumerable, где интерфейс отвечает за строгий регламент функционала. и каждый экземпляр обязан его реализовывать. А абстрактный класс используется для выявления общей иерархии класса, часто с предоставлением гарантии отсутствия экземпляра базовых обьектов. Вроде так {сотрудник абстрактный класс, клерк офисный наследует класс сотрудника} в данном случаи неопределнного сотрудника быть не может, и мы не хотим наличия его экземпляров.

Просто шарпы пытаются наконец-то ввести ООП в язык в полном объеме. Это попытка сделать множественное наследование только через жопу.

Warstone
Просто шарпы пытаются наконец-то ввести ООП в язык...

множественное наследование - тот еще способ выстрела себе в ногу)

Pavel Trifonov
множественное наследование - тот еще способ выстре...

Нежелание использовать множественное наследование - это как использовать писюн на половину.

еще скажи композиция

Warstone
Нежелание использовать множественное наследование ...

да как-то жили без этого и всем норм было

semptra
да как-то жили без этого и всем норм было

Хреново жили. Каждый раз когда ты используешь интерфейс ты расписываешься в том что твой язык говно и не поддерживает множественного наследования.

Warstone
Хреново жили. Каждый раз когда ты используешь инте...

Зачем ты в чате такой плохой платформы тогда сидишь?)

semptra
Зачем ты в чате такой плохой платформы тогда сидиш...

Когда пет проект делал - пришлось брать или шарпы или плюсы, а плюсы были более медленные по разработке.

Mikhail-Tushev Автор вопроса

жить можно с чем угодно, главное что бы удобно в разработке было, мне, к примеру, требовалось вот такое множественное наследование классов только раза 2 и то интерфейсы вполне покрывают эту проблему

Mikhail Tushev
жить можно с чем угодно, главное что бы удобно в р...

Ну вот могу рассказать как мы используем это... У нас это превратилось, фактически, в миксины и, в лучших традициях новомодных веяний но задолго до того как они стали новомодными, у нас сам конечный класс, из которого будет расти синглтон программы, при старте на основе конфига собирает себе наследование (вернее не конечный, а предпоследний). Очень удобно получается.

Warstone
Ну вот могу рассказать как мы используем это... У ...

Какая-то дичь. зачем все это? "Собирает себе наследование"

Nickolay Z
Какая-то дичь. зачем все это? "Собирает себе насле...

шо бы было чем перед джунами пришедшими понтоваться)

простите, что ? обычно вы подняли конфиг с сервера и на его основании приложение сконфигурировалось. А у вас тут какие-то подобъекты, ооп. Что такое "базовый класс сервера" ?

при старте сервера, на основе данных из конфига, через DI прокидываются нужные классы. и никаких фабрик не нужно тогда

Yuryi
простите, что ? обычно вы подняли конфиг с сервера...

Ну смотрите... Допустим у вас микро (или не сильно микро) сервисная архитектура. У вас в одном из базовых классов есть методы работы с шиной данных (транспорт неважен). Так-же у вас есть класс, который выступает веб сервером. Как вы строите архитектуру? В классе текущего сервера создаете свойство для траснпорта и свойство для веб сервера, дальше их настраиваете, обмениваетесь коллбеками или как-то по другому связываете логику... В рантайме на старте. Теперь если-бы у вас было множественное наследование - вы-бы засунули 2 этих класса себе в родителей и связали-бы все уже на этапе компаилтайма и у вас небыло-бы this.Transport.sendMessage(...), а this.sendMessage(...)

Pavel Trifonov
при старте сервера, на основе данных из конфига, ч...

Смешно. DI - это фабрика 2.0, поэтому вы сказали оксюморон.

все что вы написали понятно, непонятно только что такое класс текущего сервера. Накидайте что там. Потому что пока непонятно что у вас там кроме адаптера к шине лежит

Yuryi
все что вы написали понятно, непонятно только что ...

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

C чего вы решили, что GC вешается? Она даже умеет в закольцованные ссылки.

Nickolay Z
C чего вы решили, что GC вешается? Она даже умеет ...

Она-то умеет. Вешается она просчитывать это все.

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

Сергей (F L )
На сколько знаю, в юнити там все грустно с этим. и...

Ну это проблема текущего кора и нежелания делать нормальный ABI, а без него совместное владение объектами работает через жопу. Но владение объектами нужно только для GC, так что да.. Это проблемы GC

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

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

зачем же переименовывать ? чтобы кол-во участников возросло или вдруг IBM от этого снова на свифте начнет кодить ? Я не понимаю что страшного в том что свифт гавно, если это т...
Oleh Nerzh
8
здравствуйте. совершаю вот такую вещь: strcpy(line, (char)current_number); где current number — неподписанный шорт, line — массив чаров. ругань следующая: main.c:29:30: error...
Roberto's Ширгозиев
13
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
Можно попросить небольшое ревью кода? Тут немнога, я ничего интереснее не придумал, чем написать аналог tree в качестве практики с cmake. https://github.com/hrimov/tree-unix/...
Andrew Hrimov
11
Всем привет. Ребят подскажите пожалуйста. Вопрос по дизасемблировани. Начну с начала. У меня есть скомпилированная программа на ГО (я разработчик) - в ней есть защита лицензии...
Zloy
11
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Но если Евгений и Алекс используют в боевых условиях, то почему нет? А ты как-то про бизнес больше задвигаешь, это имеет к разработке отношение, но все же этим больше другие л...
Keiman
4
все привет. подскажите может кто сталкивался evo 3 если в formlister в параметр formTpl указать имя чанка а не через @CODE то в указанном чанке не парсятся плейсхолдеры [**]? ...
Иван Тарасевич
7
Карта сайта