Интерфейсы на практике

Поделиться
HTML-код
  • Опубликовано: 24 дек 2024

Комментарии • 192

  • @oganovdavid
    @oganovdavid 7 лет назад +592

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

    • @Артёмфомин-ш1ы
      @Артёмфомин-ш1ы 4 года назад +1

      поддерживаю что молодец.

    • @Nikodimification
      @Nikodimification 3 года назад +1

      щас бы самим себе коменты писать под видео

    • @oganovdavid
      @oganovdavid 3 года назад +1

      @@Nikodimification лол, я их верный подписчег. И т.к. сам пишу на С# могу их рекомендовать. Можешь думать что хочешь)

  • @stylendr
    @stylendr 7 лет назад +221

    Так вот кто северокорейскую ракету кодил..

  • @Dentair
    @Dentair 4 года назад +38

    "Немного дров и плов готов" эти и подобные фразы отлично разбавляют годную и по делу инфу нотками юмора, что улучшает восприятие и запоминание. Спасибо за такой классный подход к подаче.

  • @azazalalka123123
    @azazalalka123123 7 лет назад +138

    Чёт не понял, а чё так годно то? где Hello world через интерфейсы

  • @AlexBradley123
    @AlexBradley123 7 лет назад +31

    Кстати, помимо прочего, интерфейсы могут юзаться для выполнения одних и тех же действий совершенно различными классами. Представим что у нас есть котёнок, гусеница, танк и самолёт. Что у них общего? Они все могут двигаться. Соответсвенно, кроме собственно, возможностей движения у них общего довольно таки мало, так что можно использовать интерфейс IMove. Если всё это реализовывать через абстрактный класс, получится дичайшая помойка.) А уроки очень крутые и сделаны с душой, спасибо.)

    • @HerrHoldem
      @HerrHoldem 5 лет назад +3

      Спасибо, этого объяснения мне не хватало

    • @sergs2919
      @sergs2919 3 года назад

      а если реализовать через наследование от класса Rocket? порядок вполне сохранится.. Если у прогера в голове помойка то и получится тоже самое и не зависит это от интерфейса. Это имеет смысл если только в классе интерфейсов несколько, а не как у автора в примере один)

    • @AlexBradley123
      @AlexBradley123 3 года назад

      @@sergs2919 ну, пример на то и пример. Преимущество интерфейса над абстрактным классом - ты можешь реализовать сколь угодно много интерфейсов. Множественного наследования в C# нет.

    • @nightyonetwothree
      @nightyonetwothree 2 года назад

      @@sergs2919 а если ты хочешь структуру? Структуры могут реализовывать интерфейс, но не могут наследоваться от классов/структур. Впили в ракету движок-структуру - и полетит так же.

    • @sergs2919
      @sergs2919 2 года назад

      @@AlexBradley123 множественного наследования классов нет , интерфейсов есть

  • @Anders3228
    @Anders3228 5 месяцев назад

    настолько простого и понятного объяснения интерфейсов я ещё не видел. спасибо, братан, харош)

  • @MrKiller-jk5el
    @MrKiller-jk5el Год назад

    Господи, наконец то я понял зачем они нужны. Сколько раз смотрел разные видосы, хрен понятно. Кроме того, что нужно определить функции. Спасибо большое!

  • @1pavka
    @1pavka 3 года назад

    Хоть и не без претензий, но это очень хорошо. Одно из лучших среди всех объяснений. Только я бы его перевернул задом наперед, один фиг все важные слова с 7 минуты

  • @артёмтема-с3ъ
    @артёмтема-с3ъ 5 лет назад +1

    Смотрю твои видео, и все яснее становится, как надо писать хороший. Спасибо тебе автор за канал и контент крутой!

  • @iXNomad
    @iXNomad 3 года назад +2

    Короче, объясняю для тех, кто не понимает (я тоже долго не понимал).
    Зачем нужны интерфейсы, если можно всё запихнуть в классы?
    На самом деле интерфейсы позволяют сделать программу гибкой, модульной. Если вы что-то написали, то с помощью интерфейсов вы можете на изичах добавлять/изменять новые фичи, например, вы пишете основную часть программы, ваш друг-программист пишет какую-то подсистему, вы просто пишете интерфейс, он пишет под него свой модуль, который вы подключаете потом на изичах. Потому что программа уже знает, что этот модуль должен делать, вам не нужно вообще ничего переписывать, просто подключить его.
    Можно вертеть всем как захочется, менять целые куски программы по необходимости, добавлять новые фичи без необходимости переписывать половину кода.
    Та же самая фишка с совершенно разными объектами, у которых должны быть какие-то общие свойства, но это наследование будет в этом случае извращением, например, они должны обновляться каждый кадр. Незачем пихать сюда целое обычное наследование, можно просто реализовать интерфейс, условно Updateable, и не нужно будет по миллиону раз писать один и тот же код.
    Так что да, хотите гибкости в разработке, интерфейсы - ваши лучшие друзья.

    • @Vov4ik048
      @Vov4ik048 3 года назад

      Почему бы тогда не использовать Абстрактный класс ?

    • @iXNomad
      @iXNomad 3 года назад +1

      @@Vov4ik048 в Java например не работает множественное наследование. А интерфейсов можно реализовывать сколько хочешь.

  • @siersh6934
    @siersh6934 3 года назад +1

    Метод SpecialNasaMethod нам выдал Роскосмос. Ну да ну да

  • @stan5214
    @stan5214 5 лет назад +23

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

  • @АлёфкаАлёфкавиф
    @АлёфкаАлёфкавиф 2 года назад +1

    Братан хорош!! Давай вперед!! Контент в кайф. Можно еще? Вообще красавчик! Можно вот этого почаще.

  • @bombilovka16gd17
    @bombilovka16gd17 Год назад

    Спасибо огромное, очень помог!) Всех благ тебе!

  • @КириллГусарев-р5х
    @КириллГусарев-р5х 3 года назад

    Обожаю этот канал, просто обожаю все эти рофлики)))

  • @amir_ibragimov
    @amir_ibragimov 2 года назад

    ахах, почему мне так смешно и мило с этого кота в начале)?

  • @turboboy8049
    @turboboy8049 4 года назад

    Наконец-то разобрался и активно юзаю, спасибо, уважаемые

  • @mazZZzilaplayer
    @mazZZzilaplayer 6 лет назад

    С CryEngine в шепот. Кстати, очень хотелось бы ткнуть носом в то, что в сносках было написано IEngin, но после недавнего стрима в курсе, что эти ошибки специальные. Хитрецы. Лайк

  • @-anonim-3008
    @-anonim-3008 2 года назад

    Спасибо большое! Очень сильно помог пример с gitHub

  • @ASKOLDEX
    @ASKOLDEX 7 лет назад +22

    Ставь лайк если знал как юзать интерфейсы, но посмотрел чтобы проорать с мемосов

  • @darsigovrustam
    @darsigovrustam 5 лет назад +10

    Может я конечно не догоняю, но подскажите пожалуйста. В примере говорится, что без интерфейсов придется постоянно снова реализовывать классы разных ракет. Интерфейсы же помогают стандартизировать все это дело и заменять в одной и той же ракете двигатели. Но как же наследование? Можно же создать класс ракеты, а уже от нее наследовать все другие ракеты. Просто не могу понять, чем тут интерфейс сильно выиграет.

    • @votchinaMF
      @votchinaMF 2 года назад +4

      Возможно получится так, что твой дед разберёт эту ракету, достанет из неё двигатель и заведёт от него свой мопед, однако такая реализация у тебя невозможна:(
      Если же использовать интерфейс, то двигатель будет отдельной сущностью, которую можно запихнуть не только в ракету

    • @anxl2191
      @anxl2191 2 года назад +1

      А если наследовать разные движки от какого-то базового? Не понимаю в чём прелесть интерфейсов. Если, например, у них есть какой-то метод, который одинаковый для всех движков, то при наследовании можно ничего не трогать, а при реализации интерфейсов придётся копипастить.

    • @vehiclesailboat
      @vehiclesailboat 2 года назад +1

      @@anxl2191 ну как раз интерфейсы и подразумевают необходимость (ыщыщыщ!) реализации этих методов в каждом конкретном классе-наследнике.
      И что ещё важно - для интерфейсов разрешено множественное наследование.

  • @guardofazeroth4586
    @guardofazeroth4586 7 лет назад +22

    Когда стрим я со школьных обедов сэкономил буду вам донатить!!

    • @ExtremeCode
      @ExtremeCode  7 лет назад +8

      Ориентировачно с лета (но это не точно)

    • @AlexM-gn7bp
      @AlexM-gn7bp 7 лет назад +1

      Присоединяюсь, хотя данный материал для начинающих, но идея мне нравится. Плюс хотел бы добавить чтобы вы в обучалках учили не использовать "магические цифры" типа 82 или 200. Я думаю Вы понимаете о чем я, что бы ряды говнокодеров пополнялись значительно реже.

    • @yarosyari3516
      @yarosyari3516 7 лет назад +5

      я украл 300 рублей училки в сумке когда стрим буду донатить!

    • @КириллГусарев-р5х
      @КириллГусарев-р5х 3 года назад +1

      @@AlexM-gn7bp я тебя не совсем понял. В смысле "магические цифры"? Что в них такого?)

  • @erma4ellaeu183
    @erma4ellaeu183 7 лет назад +9

    Спасибо за уроки :D Только после видосиков начал вкуривать C# Все коротко, понятно и доступно) Жду видео про делегаты с событиями))

  • @doublegrey.broken
    @doublegrey.broken 7 лет назад +8

    вы просто лучшие)

  • @AndronCollider
    @AndronCollider 3 года назад

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

  • @krasser650
    @krasser650 5 лет назад +1

    Спасибо, зачетно! Хотелось бы взглянуть на класс бронетехники в World of Tanks. Вот где раздолье для интерфейсов : движки, орудия, ходовая , экипажи и т.д.

  • @ДаниилСафронов-е8т
    @ДаниилСафронов-е8т 7 лет назад +2

    оригинальный подход:) Смотрел с улыбкой. Вобщем очень понравилось и наконец разобрался накой нужны интерфейсы. А еще понравилось возможность сравнить код программ с интерфейсам и без.
    Кстати о программах (скачал с ГитХаба).
    У СВОЙСТВ ДВИЖКОВ СЕТТЕРЫ ОТСУТСТВУЮТ!!!. Как итог программы не компилятся.

    • @ExtremeCode
      @ExtremeCode  7 лет назад

      У вас, походу версия фреймворка не подходящая
      savepic.ru/14110779.png

    • @ДаниилСафронов-е8т
      @ДаниилСафронов-е8т 7 лет назад

      Очень даже может быть:) стоит 4.5
      savepic.ru/14121022.png
      "error CS0840: InterfacesPart2.YriyLozaEngine.Weight.get должен декларировать тело, так как оно не отмечено как абстрактное или внешнее. Автоматически реализованные свойства должны определять функции доступа get и set."

    • @ЮлияКудрявцева-ч5и
      @ЮлияКудрявцева-ч5и 4 года назад

      Из чайников придется переходить во что нибудь другое и висеть ,висеть..

  • @ulyana_khr
    @ulyana_khr 9 месяцев назад

    Спасибо, разобралась и поугарала 😅

  • @WhoIntrestingIn
    @WhoIntrestingIn Год назад

    Не понимал, зачем оно надо, а потом как понял)

  • @0arcanus0
    @0arcanus0 7 лет назад +13

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

    • @ExtremeCode
      @ExtremeCode  7 лет назад +93

      Я тоже когда-то задавался таким вопросом) А разница между ними как разница между солёным и тёплым.
      Да, абстрактные классы тоже могут скрывать реализацию конкретных наследников и выступать в роли обобщения. Всё потому что они передают наследнику и свой интерфейс (особенности реализации аспектов языка такие). Но их главная задача, всё таки наделять наследников определёнными реализованными членами (чего не могут интерфейсы).
      При этом всём возможна множественная реализация интерфейсов (чего нельзя делать с абстрактными классами).
      Если приводить аналогии из реального мира, то абстрактный класс - это что то вроде описания вашего биологического вида. А интерфейсы это ваши жизненные роли, типа: "студент", "сын", "программист" (их может быть бесчисленное количество).
      В общем на самом деле использовать абстрактный класс вместо интерфейса это как столешницу подпирать ружьём. Да, ружьё может быть неплохой ножкой, но задача у него, всё таки, другая. Кроме того интерфейсы и абстрактные классы можно использовать вместе, да так что каждый будет решать ту задачу, для которой он создан.

  • @dmvLex
    @dmvLex 4 года назад

    Все не понимал,нахуя нужны интерфейсы.
    Теперь все понял.
    Спасибо

  • @SheWasTheOneWithTheBrokenSmile
    @SheWasTheOneWithTheBrokenSmile 7 месяцев назад +1

    Не понял почему Engine нельзя сделать базовым абстрактным классом и наследовать от него новых Engine'ов

  • @dmytrovietsu4224
    @dmytrovietsu4224 7 лет назад +4

    Как и всегда ТОП!!

  • @qwertymangames1800
    @qwertymangames1800 2 года назад +7

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

  • @404Negative
    @404Negative 6 лет назад +1

    оценил отсылку к Аршавину. было очень смешно. спасибо.

  • @choopa-choops
    @choopa-choops 4 года назад +3

    Дядьки, сделайте видосик про абстрактные классы, когда нужно использовать их, а когда интерфейс, плз🎎

  • @ВоваЩиров
    @ВоваЩиров 10 месяцев назад

    Реально выручил!!

  • @TheDron84
    @TheDron84 7 лет назад +2

    Тут можно же заменить интерфейс IEngine на абстрактный класс? На сколько я всосал эти две темы, то по отношению к данному примеру оно будет аналогичным. Абстрактный класс Engine тоже ведь обобщает все двигатели в себе. И от него может наследоваться класс HatersEngine.

    • @ve1c0m
      @ve1c0m 6 лет назад

      Да, можно, и даже правильней будет, т.к. "двигатель" это абстракция, а остальные конкретные двигатели её реализации. А интерфейсы нужно использовать как "контракт" или "соглашение" о чём-либо, например интерфейс "перемещения в пространстве"(птичка летает, человек идет, червяк ползёт, рыбка плывёт, самолет летит) действия одни и те же, но сущности разные.

  • @mikedastro2930
    @mikedastro2930 7 лет назад

    Лучший канал на Ютубе

  • @vozleptichki
    @vozleptichki 5 лет назад +1

    Все понятно, спасибо огромное) просмотр был очень познавательным, интересным и легким))))

  • @BAS-64
    @BAS-64 7 лет назад +1

    Отлично. Наконец то кто-то адекватно объяснил что такое интерфейс.

  • @andrewk3802
    @andrewk3802 7 лет назад +4

    Го видос про DI

  • @ramil9209
    @ramil9209 4 года назад

    Озуеные шутки) красава, продолжай, примеры в точку

  • @ВитяПластунов-е5т
    @ВитяПластунов-е5т 6 лет назад

    Все доступно рассказал и доходчиво

  • @СтепанТерещук
    @СтепанТерещук 4 года назад

    годное , понятное видео . СПАСИБО !

  • @WoolfStyle
    @WoolfStyle 6 лет назад +2

    Бля, да ты красавчеггг. Решил простую задачу по запуску ракеты расписать на пару сотен строк кода.
    И при этом втираешь о нужности тут интерфейсов.
    Госпади, дай этому чуваку реального опыта. А то он походу сам ничего конкретного не программировал никогда.
    А вместо этого, задачки из учебника решал.

    • @WoolfStyle
      @WoolfStyle 6 лет назад +3

      @Eugene Borisik Я приебался к тому, что он сам себе велосипедов нагородил. Сделал два шага путем кувырка назад и приседаний (шоб понятнее было)

  • @TheMaither
    @TheMaither 4 года назад +1

    Любая вилка может быть движком
    главное чтобы она реализовала интерфейс

  • @sergbo5509
    @sergbo5509 5 лет назад +1

    Мощность двигателя, или сила тяги, в ракетных движках измеряется в Ньютонах. Еще в характеристиках есть ISP по нашему удельный импульс, отражает скорость вылетающих из двигателя частиц(продуктов сгорания), по тому как энергия расчитывается как масса умноженная квадрат скорости то все это отражается на эффективность расхода топлива. Т.е. зная ISP можно посчитать сколько топлива в секунду для работы двигателя который обеспечит заданную реактивную тягу. И чем выше значение ISP тем эффективнее двигатель. А зная тягу двигателя и массу ракеты можно вычислить ускорение с которой она может ускоряться, а зная количество топлива можно еще и узнать время работы двигателя и вообще получить максимальную дельту скорости которую может обеспечить данная ракета. Короче программирование это вам не космические корабли запускать!))

    • @МаксимГайдай-ъ5ж
      @МаксимГайдай-ъ5ж 3 года назад +2

      я думал, что это я душный, пока не прочитал этот твой коммент..

  • @НиколайТорощин-е6э
    @НиколайТорощин-е6э 5 лет назад +1

    Нравятся подача) материал годный, подписался)👍🔥

  • @fidelcastro3223
    @fidelcastro3223 5 лет назад

    Очень доступное и понятно видео

  • @anatoliy9696
    @anatoliy9696 6 лет назад +2

    Не как не пойму зачем тут интерфейсы если можно было сделать абстрактный класс с разными производными классами двигателей ?
    Единственное могу предположить если у нас есть несколько типов двигателей ракетные, паровые, ядерные и т.д. То да можно этим двигателям реализовать интерфейс и подставлять любой двигатель.
    Я так понял предназначение интерфейсов приводить разные объекты к одному типу ?

    • @404Negative
      @404Negative 6 лет назад +1

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

  • @sashikshik
    @sashikshik 10 месяцев назад +1

    Я так и не понял, нафига тут интерфейс, если можно вместо него сделать абстрактный класс

  • @brianshoubert7803
    @brianshoubert7803 3 года назад +1

    Программная сущность в виде гномика

  • @lit1041
    @lit1041 5 лет назад +3

    Тогда вопрос: почему бы просто не использовать абстрактные классы?

    • @me_000_xXx
      @me_000_xXx 5 лет назад

      прост. для иаслят это сложно. и немножк уход в сторону.

    • @lit1041
      @lit1041 5 лет назад

      Ну блин, я думаю, что я не такой уж новичок, что бы не понять почему абстрактные классы не заменяют интерфейсы. Так что можешь попробывать обьяснить

    • @АлександрКузьмин-ш4ф
      @АлександрКузьмин-ш4ф 5 лет назад

      Вот вам другой пример, допустим вам нужен ковёр. Есть два способа его получить 1) Обратиться к классу МастерТкач 2) Обратиться к классу АвтоматезированныйТкацкийСтанок. От какого абстрактного класса наследуются эти два конкретных?(теоретически это возможно, но следует взять невероятно высокий уровень абстракции, не имеющий никакого смысла). Но оба этих класса реализуют интерфейс IполучитьКовёр. Абстрактные классы нужны чтобы передать наследникам часть своей структуры, интерфейсы нужны для закрепления одинаковой роли классов в коде, несмотря на абсолютна разные реализации.

    • @lit1041
      @lit1041 5 лет назад

      @@АлександрКузьмин-ш4ф Блин, вот пример, кроме которого у меня ничего на ум не приходит: есть интерфейс IGetObject, в котором будет метод getObject, который будет возвращать объект с типом object. Потом можно будет получить нужный класс с помощью оператора as. Но разве это все, на что способен интерфейс?

  • @angelldark6426
    @angelldark6426 3 года назад

    Спасибо, прикольна ))
    мне понравилось

  • @z0dlak380
    @z0dlak380 2 года назад

    Интерфейсы ещё немного юзабельны в рефлексии, вытянув какой-то тип в виде object, можно привести его к интерфейсному типу и юзать методы, которые определены в этом интерфейсе. (Вместо ебучего dynamic, СУКА С# это строго-типизированый язык) Но надо быть очень аккуратным, тк нужно точно быть уверенным, что мы можем привести тот или инной объект к тому или иному интерфейсу

  • @nezajac
    @nezajac 4 года назад

    Я 10 раз пересматривал это видео, а еще другое видео 20 раз, при этом читал книгу Шилдта и практиковал знания в студии и наконец меня озарило нахрена нужны интерфейсы, но я до сих пор не знаю как писать приложения. Читать книгу дальше?

  • @andrewwos
    @andrewwos 6 лет назад +29

    Чот вспомнился движок CryEngine :D

    • @TrOll-cr1gf
      @TrOll-cr1gf 5 лет назад +2

      Почему?

    • @BYGUR
      @BYGUR 4 года назад +7

      @@TrOll-cr1gf потому что он тоже работает на силе слез фанатов российской сборной

  • @ChaoticWhirl
    @ChaoticWhirl 3 года назад

    Спасибо большое, было очень понятно!

  • @FPV777
    @FPV777 4 года назад

    Афигенно йопта. Лойс.

  • @spacerecluse
    @spacerecluse 3 года назад

    оу, даже красную плесень вспомнили ...

  • @MrCher666
    @MrCher666 Год назад

    аххахаха хорош, мне понравилось видео)

  • @KaNaLVASI
    @KaNaLVASI 4 года назад +2

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

  • @IvanReshetov
    @IvanReshetov 7 лет назад +6

    ой CryEngine, ой ржу не могу)

  • @Адекватный-я6я
    @Адекватный-я6я 3 года назад

    Двигло с данным типом топлива не то,что до Альфа-центавры долетит,он способен облететь всю вселенную,таща за собой всю планету.

  • @djodik1402
    @djodik1402 2 года назад

    Круто!

  • @denisrudenko1003
    @denisrudenko1003 4 года назад

    Доходчиво и с юмором, давай ещё!👍

  • @yuriyparamonov1965
    @yuriyparamonov1965 5 лет назад

    Бля чувак єто охуєно. Смотрететь на фоне пока работаєш то что надо

  • @MrCursedsin
    @MrCursedsin 7 лет назад

    У Вас в скаченном примере кода, лишние записи о Start, Stop, условия для них не выполняются. Ракеты все равно полетят.

  • @ИванСоблазн
    @ИванСоблазн 5 лет назад +3

    Эм. А почему бы просто не сделать тоже самое через классы? Видео не раскрывает сути интерфейсов.

  • @alex63271
    @alex63271 3 года назад

    А теперь, например нужно эти ракеты задокументировать в электронном виде. И сериализация в xml с интерфейсами не пашет.. увы(((

  • @mikhailchekavyj4592
    @mikhailchekavyj4592 3 года назад

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

  • @workshopoleg5661
    @workshopoleg5661 5 лет назад

    Экстрим код лучше любой водяры!

  • @Inignalf
    @Inignalf 5 лет назад

    Большое спасибо! Пока что многое становится понятней ))) может быть и я научусь когда-нибудь программировать, а не тупо писать хранимые процедуры

  • @nonameforest9923
    @nonameforest9923 5 лет назад +2

    Мы просто могли создать абстрактный класс и всё

  • @DrMad135
    @DrMad135 5 лет назад

    Очень годно!

  • @anarmammadhasanov7987
    @anarmammadhasanov7987 3 года назад

    vpolne krasivo

  • @ИльяТампио-д5к
    @ИльяТампио-д5к 7 лет назад

    Го следуъщий видос по абстрактным классам и их отличиям от интерфейсов

  • @gloomkol
    @gloomkol 7 лет назад +12

    Норм. Жду лайк от вас.

  • @Garneg
    @Garneg 3 года назад

    Чётко

  • @АнофриевАлексей
    @АнофриевАлексей 4 года назад

    Не логичней ли в этом примере с ракетами использовать абстрактный класс?

    • @VyachesR
      @VyachesR 4 года назад

      Данное видео не обьясняет, что здесь лучше. Обьясняеться то, зачем и как использовать интерфейс, ну или очень похожий по свойствам абстрактный класс. Так что, а рамках этого видео - нет, не логичней . + как мне кажеться, с астрактным классом код тяжелее для понимания

  • @seniorHelloWorldDeveloper
    @seniorHelloWorldDeveloper 5 лет назад +2

    SpecialNasaMethod, а прислали из Роскосмоса)

  • @TedFanat
    @TedFanat 5 лет назад

    Стратегия на практике + property injection))

  • @jozakatkin
    @jozakatkin 3 года назад

    Немного дров и код готов

  • @ivannebyshynets8829
    @ivannebyshynets8829 3 года назад

    Найсович!

  • @oleksijm
    @oleksijm 4 года назад

    Экстрим кот тэвэ!

  • @mrspacer1
    @mrspacer1 7 лет назад +4

    Айпро, Мистерио поставьте лайк если видите меня

  • @dmytrovolynets
    @dmytrovolynets 7 лет назад

    Когда осознаешь, что не понимал таких важных вещей - осознаешь так же, какое ты криворукое дно))) Спасибо, видосик зачётный)

  • @ПавелБочаров-ц3б
    @ПавелБочаров-ц3б 3 года назад

    можно ли назвать это применением паттерна "стратегия"?

    • @Porshen25
      @Porshen25 3 года назад +1

      Определённо да. Суть стратегии использовать общий интерфейс алгоритмов, чтобы в дальнейшем свободно заменять один конкретный алгоритм, реализующий интерфейс, на другой в зависимости от контекста

  • @GameWorldMrKIller
    @GameWorldMrKIller 5 лет назад +2

    Что за язык, сначала подумал, что c++, после увидел синтаксис c#, это же c# ?

    • @woodlandfantomas2044
      @woodlandfantomas2044 4 года назад

      В C++ интерфейсов нет. Есть абстрактные классы.

    • @d1imager821
      @d1imager821 2 года назад

      python

  • @sergs2919
    @sergs2919 3 года назад +1

    С таким интерфейсом тебе все равно придется клепать классы к каждому двигателю с наследованием от интерфейса.. у тебя в интерфейсе . только получение данных нет передачи в класс.. Какой смысл в такой реализации интерфейса? разве также без интерфейса нельзя наклепать этих классов с наследованием от основного класса Rocket? пример явно не удачен для понимания

  • @S.D.Primus
    @S.D.Primus Месяц назад

    😍

  • @Rostik-pk1ik
    @Rostik-pk1ik 5 лет назад

    Почему ты это не сделал принципом ООП, а то смотрю все в одну строку

  • @ФилиппВолошин-о5в
    @ФилиппВолошин-о5в 7 лет назад +1

    Почему вместо архива не расшарить ссылку с кодом, например на гитхабе. Намного же проще было бы исходник просмотреть, + не нужно скачивать/разархивить/запускать студию.
    А так за видос спасибо, как всегда круто

    • @ExtremeCode
      @ExtremeCode  7 лет назад

      Действительно, вы правы. Добавил в описании ссылку на гитхаб.

  • @Professional_resident
    @Professional_resident 6 лет назад

    Благодарю!

  • @Tokel-X
    @Tokel-X 3 года назад

    А почему вместо интерфейса тут нельзя было использовать абстрактный класс? Он в будущем даст больше расширяемости, да и код более логично будет выглядеть.

    • @Tokel-X
      @Tokel-X 3 года назад

      У меня есть пример использования интерфейса получше:
      Есть абстрактный класс Car от которого наследуются SimpleCar, SportCar и Truck
      Так же есть класс Radio и интерфейс IRadio
      В классе Radio есть методы public void Play() и public void Tune(int times), а в интерфейсе есть методы public RadioPlay() и public RadioTune(int times)
      Классы SimpleCar и Truck будут реализовывать интерфейс IRadio и иметь в себе поле Radio radio, а реализация будет таковой:
      public override void RadioPlay() => radio.Play(), соответственным образом будет реализован другой метод
      Всё, теперь мы можем обобщённо обращаться ко всем объектам, в которых есть радио при помощи интерфейса IRadio

  • @jiln3hb
    @jiln3hb Год назад

    спасибо!

  • @yarosyari3516
    @yarosyari3516 7 лет назад

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

  • @barisraeli2378
    @barisraeli2378 5 лет назад

    Кто-нибудь может подсказать какой паттерн тут реализуется ?

  • @code_la
    @code_la 5 лет назад

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