|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Nechto Код: c# 1. 2. 3.
// Какой же смысл нагромождать код. Я вообще изначально представлял, что интерфейсы это как содержание книги. Обратись по оглавлению и ты получишь текст параграфа. Оказалось что я неправильно думал, и как оказалось интерфейс содержание пустышка. По которому ты не имеешь линков на методы. :( // Зачем нужен этот весь код, приведите пожалуйста хоть кто ни будь наглядный код. Чтобы развеять мои сомнения на счёт интерфейсов. Все эти интерфейсы, инекции и прочая муть нужны для управления сложными приложениями. Люди, которые в жизни никогда сложнее Hello World и говносайтов-визиток на ПХП ничего не писали - им трудно понять, зачем столько сложностей. Ведь можно тупо наговнокодить лапши и это будет как-то работать. VIT2708Интерфейсы вообще не обязательно использовать. Если вы выстроили себе модель наследования обьектов то вам и не нужно создавать интерфейсы Представляю, как выглядел бы .NET, не будь там интерфейсов, а только одиночное наследование - весь такой на хелперах-расширениях и на внедрениях. Тогда бы новички точно бы не стали такое изучать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 13:38 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Nechto Попробуйте написать небольшое приложение. Потом добавить функциональности к нему. Потом ещё добавить. Потом ещё. Потом отрефакторить. Потом использовать какие-нибудь сторонние библиотеки. Потом изменить часть кода под изменившиеся требования. Потом отрефакторить. Потом написать под другую платформу клиент для вашего приложения. И всё это 10 раз в цикле в разных комбинациях. Когда надоест тестировать, каждый раз запуская под F5 и заполняя формы, ставить точки останова в обработчиках, вы дойдёте до юнит-тестов. Там и до инъекций недалеко. Там же будет разделение кода представлений и моделей. И т. д. и т. п. Объяснять неопытному новичку - почти гиблое дело. Он просто не поймёт. Нужна практика. Очень много практики. Грубо говоря, 10 лет по 4-8 часов в день чистого программирования. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 13:43 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Nechto, Скачайте книжку " Э. Стиллмен, Дж. Грин - Изучаем C# " там по нормальному написано зачем интерфейсы с примерами. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 13:53 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
AntonariyОтсутствие множественного наследования это "жопа языка" и "жопа компилятора". А интерфейсы как костыль помогают сделать вид, что оно есть. его нет. оно не нужно. вид никто не делает: реализация интерфейсов - это не множественное наследование. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 14:28 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Nechto, с абстракциями все просто: у тебя есть сотовый телефон (Mobile) - это сложный объект, внутри куча непонятных функций, ты делаешь для него интерфейсы: * ITelephone - звонилко * ISMS - отправлялко-смско класс наследуется от двух интерфейсов Mobile: ITelephone, ISMS потом в коде, если ты приведешь Mobile к ITelephone , то посмотришь на сложный объект с точки зрения "звонилко" и увидишь (тебе будут доступны) только функции телефона, а если приведешь к ISMS - то аналогично с точки зрения "отправлялко-смско" если у тебя будет два телефона и у обоих будет интерфейс "отправлялко-смско" (ISMS), приведешь оба к ISMS, то ты можешь в цикле отправить одну и ту же смску с разных телефонов, при необходимости - другими словами групповое выполнение одной функции разными объектами абстрактный класс - та же хрень, только можно пихуть туда (скрыть) реализацию неких базовых/вспомогательных методов ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 15:17 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Где-то в степи а теперь выйдем из матрицы И попадем в другую матрицу, clr-ную. Про нюансы реализации интерфейсов в байткоде знать, в общем, неплохо. Для общего развития, но практической пользы от этого мало. А упомянутый пассаж с интерфейсами (.class interface public abstract auto ansi бла-бла-бла) вносит окончательную путаницы в неокрепший ум. Классическое определение, данное мною выше, плюс некоторое количество практики - именно то, что нужно на начальном этапе, а углубление в низкоуровневые нюансы реализации будет только мешать (поэтому, кстати, Рихтера часто не рекомендуют начинающим). И да, за примерно 8 лет возни с дотнетом мне ни разу не пришлось применять на практике знание байткодной реализации интерфейсов. Равно как и не возникало сожалений об отсутствии множественного наследования. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 17:07 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Сон Веры Павловны, авторИ попадем в другую матрицу, clr-ную. Про нюансы реализации интерфейсов в байткоде знать, в общем, неплохо. Для общего развития, но практической пользы от этого мало. А упомянутый пассаж с интерфейсами (.class interface public abstract auto ansi бла-бла-бла) вносит окончательную путаницы в неокрепший ум. не передергивайте , я не призывал (ТА) лазить в байткод, весь мой синопсис был направлен на облегчение понимания, через принятие оных как абстрактных классов, что в прочем мои рекомендации и ваши пожелание авторКлассическое определение, данное мною выше пошли в небо по воробьям 16035642 , что в прочем объяснимо возможно клиническим случаем у та, а термин матрица был применен не общаясь с та, а в общении с могучим и продолжительным пользователем. авторИ да, за примерно 8 лет возни с дотнетом мне ни разу не пришлось применять на практике знание байткодной реализации интерфейсов. Равно как и не возникало сожалений об отсутствии множественного наследования. это очень хорошо, и вы тут не одиноки, та пишет пол года и не вдупляется в интерфейсы, мало того и он не одинок, есть по много лет кто пишет и не знает оных, если взять асп, меня ваще умиляют некоторые спецы пишущие много лет, и пытающиеся ловить клик на клиенте в образах обработчиков на сервере. Это же C#, тут не нужны глубокие знания чтобы соорудить что то подобное коду, а уж тем более лазить в байт код ( удел не многих, да и время свободное на это надо), тут достаточно прихуярить мышкой с тулбара чонить на середину, и пару раз ебнуть по нему, что бы открылся дефолтный обработчик, и читать как бы считается в западло... вот тын не по теме т ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 17:41 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
user7320VIT2708Интерфейсы вообще не обязательно использовать. Если вы выстроили себе модель наследования обьектов то вам и не нужно создавать интерфейсы Представляю, как выглядел бы .NET, не будь там интерфейсов, а только одиночное наследование - весь такой на хелперах-расширениях и на внедрениях. Тогда бы новички точно бы не стали такое изучать. Было такое уже - называется Delphi. Различные классы для DbAware и не-DbAware контролов - это эпик! Создание дата-провайдеров для SQL-серверов - рокет сайенс. Модульные приложения - экзотика. В-общем, наглядный пример, что без интерфейсов грустно. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 18:23 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Где-то в степи... в общем то эрекция происходит не на IEnumerable , а на IEnumerator GetEnumerator() ... ох-нифига-се.. :/ не думал, что я могу еще чему-то удивляться глядя на C#.. и тем не менее. Понять бы еще, зачем оно надо? :/ ... |
|||
:
Нравится:
Не нравится:
|
|||
19.05.2014, 18:50 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
RubinDmПонять бы еще, зачем оно надо? :/ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
какой GetEnumerator должен звать foreach(var v in new A()) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 07:09 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Ох уже эти Фаулеры... http://en.wikipedia.org/wiki/Factory_pattern More broadly, a subroutine that returns a "new" object may be referred to as a "factory" Фаулер от спорта и биологии, при собеседовании кандидата на игру в футбол: автор- Вы обладаете навыками асимметричной наземной локомоции? - Нет, я только умею бе... (бегать) - "Бее", "мее" - вот всё, что вы знаете, жалкие джуниоры. Нам такие не нужны. Мы ищем настоящих профи, типа меня (напыщенного 23-летнего "сеньора", наблатыкавшегося умными терминами, значения которых он и сам до конца не знает). Назови какую-нибудь банальную и привычную фигню как-нибудь заумно. Напиши об этой простой фигне кучу книжек, чтобы никто не мог понять, про что там. - Получи всемирное признание и известность, как профессор "словоблудия" и маститый исследователь этой фигни. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 10:35 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Особенно смешно, когда отвечаешь "фабрика - это, в общем случае, такая штука, которая создаёт новый объект". А в ответ "нууу... не совсем". Думаешь так про себя: "боже, что этот болванчик ещё имел ввиду - понавбивают себе в голову каждый своё видение, а потом попробуй поподстраивайся под них". ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 10:37 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
ИзопропилRubinDmПонять бы еще, зачем оно надо? :/ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
какой GetEnumerator должен звать foreach(var v in new A()) ? А что, если я возьму и на собеседовании при подобном вопросе вдруг неожиданно вылью на тебя заранее заготовленное ведро помоев? "Нифига себе!", - подумает собеседующий, - "у этого парня очень нестандартное мышление. Он явно сможет найти выход из любой ситации. Берём его в креативный отдел главных архитекторов!" Не в обиду, а так... ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 10:41 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
ИзопропилRubinDmПонять бы еще, зачем оно надо? :/ Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
какой GetEnumerator должен звать foreach(var v in new A()) ? Первый. Если его будет, второй. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 10:57 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
user7320Не в обиду, а так... ))) Эмм.. а ведь вроде как никто никого лично в незнании вопроса про энумератор не обвинял ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 11:32 |
|
c# Интерфейсы способы применения
|
|||
---|---|---|---|
#18+
Сон Веры Павловныuser7320Не в обиду, а так... ))) Эмм.. а ведь вроде как никто никого лично в незнании вопроса про энумератор не обвинял ;) Так я же не в обиду, а так... Извините, кого что если... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.05.2014, 12:36 |
|
|
start [/forum/topic.php?fid=20&startmsg=38645114&tid=1402909]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 343ms |
total: | 472ms |
0 / 0 |