powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Интерфейсы способы применения
18 сообщений из 43, страница 2 из 2
c# Интерфейсы способы применения
    #38645114
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto
Код: c#
1.
2.
3.
BASE : IBC // Не видем методы класса B и C

BASE : IA // Тоже не видем методы класса A


// Какой же смысл нагромождать код. Я вообще изначально представлял, что интерфейсы это как содержание книги. Обратись по оглавлению и ты получишь текст параграфа. Оказалось что я неправильно думал, и как оказалось интерфейс содержание пустышка. По которому ты не имеешь линков на методы. :(

// Зачем нужен этот весь код, приведите пожалуйста хоть кто ни будь наглядный код. Чтобы развеять мои сомнения на счёт интерфейсов.


Все эти интерфейсы, инекции и прочая муть нужны для управления сложными приложениями. Люди, которые в жизни никогда сложнее Hello World и говносайтов-визиток на ПХП ничего не писали - им трудно понять, зачем столько сложностей. Ведь можно тупо наговнокодить лапши и это будет как-то работать.

VIT2708Интерфейсы вообще не обязательно использовать. Если вы выстроили себе модель наследования обьектов то вам и не нужно создавать интерфейсы
Представляю, как выглядел бы .NET, не будь там интерфейсов, а только одиночное наследование - весь такой на хелперах-расширениях и на внедрениях. Тогда бы новички точно бы не стали такое изучать.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645121
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto

Попробуйте написать небольшое приложение. Потом добавить функциональности к нему. Потом ещё добавить. Потом ещё. Потом отрефакторить. Потом использовать какие-нибудь сторонние библиотеки. Потом изменить часть кода под изменившиеся требования. Потом отрефакторить. Потом написать под другую платформу клиент для вашего приложения. И всё это 10 раз в цикле в разных комбинациях. Когда надоест тестировать, каждый раз запуская под F5 и заполняя формы, ставить точки останова в обработчиках, вы дойдёте до юнит-тестов. Там и до инъекций недалеко. Там же будет разделение кода представлений и моделей. И т. д. и т. п. Объяснять неопытному новичку - почти гиблое дело. Он просто не поймёт. Нужна практика. Очень много практики. Грубо говоря, 10 лет по 4-8 часов в день чистого программирования.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645148
VIT2708
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

Скачайте книжку " Э. Стиллмен, Дж. Грин - Изучаем C# " там по нормальному написано зачем интерфейсы с примерами.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645203
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyОтсутствие множественного наследования это "жопа языка" и "жопа компилятора". А интерфейсы как костыль помогают сделать вид, что оно есть.

его нет. оно не нужно. вид никто не делает: реализация интерфейсов - это не множественное наследование.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645291
17-77
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nechto,

с абстракциями все просто:
у тебя есть сотовый телефон (Mobile) - это сложный объект, внутри куча непонятных функций, ты делаешь для него интерфейсы:
* ITelephone - звонилко
* ISMS - отправлялко-смско

класс наследуется от двух интерфейсов Mobile: ITelephone, ISMS

потом в коде, если ты приведешь Mobile к ITelephone , то посмотришь на сложный объект с точки зрения "звонилко" и увидишь (тебе будут доступны) только функции телефона, а если приведешь к ISMS - то аналогично с точки зрения "отправлялко-смско"

если у тебя будет два телефона и у обоих будет интерфейс "отправлялко-смско" (ISMS), приведешь оба к ISMS, то ты можешь в цикле отправить одну и ту же смску с разных телефонов, при необходимости - другими словами групповое выполнение одной функции разными объектами

абстрактный класс - та же хрень, только можно пихуть туда (скрыть) реализацию неких базовых/вспомогательных методов
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645479
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645482
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи а теперь выйдем из матрицы
И попадем в другую матрицу, clr-ную. Про нюансы реализации интерфейсов в байткоде знать, в общем, неплохо. Для общего развития, но практической пользы от этого мало. А упомянутый пассаж с интерфейсами (.class interface public abstract auto ansi бла-бла-бла) вносит окончательную путаницы в неокрепший ум. Классическое определение, данное мною выше, плюс некоторое количество практики - именно то, что нужно на начальном этапе, а углубление в низкоуровневые нюансы реализации будет только мешать (поэтому, кстати, Рихтера часто не рекомендуют начинающим).
И да, за примерно 8 лет возни с дотнетом мне ни разу не пришлось применять на практике знание байткодной реализации интерфейсов. Равно как и не возникало сожалений об отсутствии множественного наследования.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645535
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловны,
авторИ попадем в другую матрицу, clr-ную. Про нюансы реализации интерфейсов в байткоде знать, в общем, неплохо. Для общего развития, но практической пользы от этого мало. А упомянутый пассаж с интерфейсами (.class interface public abstract auto ansi бла-бла-бла) вносит окончательную путаницы в неокрепший ум.
не передергивайте , я не призывал (ТА) лазить в байткод, весь мой синопсис был направлен на облегчение понимания, через принятие оных как абстрактных классов, что в прочем мои рекомендации и ваши пожелание
авторКлассическое определение, данное мною выше
пошли в небо по воробьям 16035642 , что в прочем объяснимо возможно клиническим случаем у та, а термин матрица
был применен не общаясь с та, а в общении с могучим и продолжительным пользователем.
авторИ да, за примерно 8 лет возни с дотнетом мне ни разу не пришлось применять на практике знание байткодной реализации интерфейсов. Равно как и не возникало сожалений об отсутствии множественного наследования.
это очень хорошо, и вы тут не одиноки, та пишет пол года и не вдупляется в интерфейсы, мало того и он не одинок, есть по много лет кто пишет и не знает оных, если взять асп, меня ваще умиляют некоторые спецы пишущие много лет, и пытающиеся ловить
клик на клиенте в образах обработчиков на сервере.
Это же C#, тут не нужны глубокие знания чтобы соорудить что то подобное коду, а уж тем более лазить в байт код ( удел не многих, да и время свободное на это надо), тут достаточно прихуярить мышкой с тулбара чонить на середину, и пару раз ебнуть по нему, что бы открылся дефолтный обработчик, и читать как бы считается в западло...
вот тын не по теме
т
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645596
Фотография Диез
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320VIT2708Интерфейсы вообще не обязательно использовать. Если вы выстроили себе модель наследования обьектов то вам и не нужно создавать интерфейсы
Представляю, как выглядел бы .NET, не будь там интерфейсов, а только одиночное наследование - весь такой на хелперах-расширениях и на внедрениях. Тогда бы новички точно бы не стали такое изучать.

Было такое уже - называется Delphi. Различные классы для DbAware и не-DbAware контролов - это эпик! Создание дата-провайдеров для SQL-серверов - рокет сайенс. Модульные приложения - экзотика.

В-общем, наглядный пример, что без интерфейсов грустно.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645623
RubinDm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи... в общем то эрекция происходит не на IEnumerable , а на IEnumerator GetEnumerator() ... ох-нифига-се.. :/ не думал, что я могу еще чему-то удивляться глядя на C#.. и тем не менее. Понять бы еще, зачем оно надо? :/
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38645863
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RubinDmПонять бы еще, зачем оно надо? :/
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    class A:IEnumerable{

        public IEnumerator GetEnumerator()
        {
            ...
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            ...
        }
    }


какой GetEnumerator должен звать foreach(var v in new A()) ?
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646011
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ох уже эти Фаулеры...

http://en.wikipedia.org/wiki/Factory_pattern More broadly, a subroutine that returns a "new" object may be referred to as a "factory"

Фаулер от спорта и биологии, при собеседовании кандидата на игру в футбол:

автор- Вы обладаете навыками асимметричной наземной локомоции?

- Нет, я только умею бе... (бегать)

- "Бее", "мее" - вот всё, что вы знаете, жалкие джуниоры. Нам такие не нужны. Мы ищем настоящих профи, типа меня (напыщенного 23-летнего "сеньора", наблатыкавшегося умными терминами, значения которых он и сам до конца не знает).

Назови какую-нибудь банальную и привычную фигню как-нибудь заумно. Напиши об этой простой фигне кучу книжек, чтобы никто не мог понять, про что там. - Получи всемирное признание и известность, как профессор "словоблудия" и маститый исследователь этой фигни.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646014
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Особенно смешно, когда отвечаешь "фабрика - это, в общем случае, такая штука, которая создаёт новый объект". А в ответ "нууу... не совсем". Думаешь так про себя: "боже, что этот болванчик ещё имел ввиду - понавбивают себе в голову каждый своё видение, а потом попробуй поподстраивайся под них".
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646022
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRubinDmПонять бы еще, зачем оно надо? :/
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    class A:IEnumerable{

        public IEnumerator GetEnumerator()
        {
            ...
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            ...
        }
    }


какой GetEnumerator должен звать foreach(var v in new A()) ?
А что, если я возьму и на собеседовании при подобном вопросе вдруг неожиданно вылью на тебя заранее заготовленное ведро помоев? "Нифига себе!", - подумает собеседующий, - "у этого парня очень нестандартное мышление. Он явно сможет найти выход из любой ситации. Берём его в креативный отдел главных архитекторов!"

Не в обиду, а так... )))
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646041
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилRubinDmПонять бы еще, зачем оно надо? :/
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    class A:IEnumerable{

        public IEnumerator GetEnumerator()
        {
            ...
        }

        IEnumerator IEnumerable.GetEnumerator()
        {
            ...
        }
    }


какой GetEnumerator должен звать foreach(var v in new A()) ?
Первый. Если его будет, второй.
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646102
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320Не в обиду, а так... )))
Эмм.. а ведь вроде как никто никого лично в незнании вопроса про энумератор не обвинял ;)
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38646222
user7320
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сон Веры Павловныuser7320Не в обиду, а так... )))
Эмм.. а ведь вроде как никто никого лично в незнании вопроса про энумератор не обвинял ;)
Так я же не в обиду, а так... Извините, кого что если...
...
Рейтинг: 0 / 0
c# Интерфейсы способы применения
    #38647083
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
user7320,

это не вопрос, а попытка объяснения "Понять бы еще, зачем оно надо? :/"
...
Рейтинг: 0 / 0
18 сообщений из 43, страница 2 из 2
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / c# Интерфейсы способы применения
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]