Паттерн Адаптер (Adapter)

Поделиться
HTML-код
  • Опубликовано: 23 авг 2024
  • А вот и новый видос подъехал. Пишите свои вопросы в комментариях, будем отвечать на них на следующем стриме.
    Плейлист с паттернами: bit.ly/2tyvweF
    Наша группа в вк: extreme...

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

  • @mortarion_11
    @mortarion_11 6 лет назад +197

    Воспоминая про этот видос очень помогли на собесе, главное не ляпнуть гламурный кисо-класс :)

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

      о, я тоже по этом видосу к собеседованию готовлюсь ))

  • @Pedosmesharik
    @Pedosmesharik 7 лет назад +74

    Коротко, а главное доступно. Лойс.

  • @VitaliyBrizhan
    @VitaliyBrizhan 3 года назад +12

    ОМГ! Как теперь распомнить КИСОКЛАСС))) Подача материала - топчик! Спасибо за столь крутое видео. Полагаю, вы многим помогли с пониманием и дальнейшим использованием этих знаний!

  • @PLoveCode
    @PLoveCode 2 года назад +5

    Я смеялся от мемов ооочень долго. Про интерпретирование термина в проблему отдельный лайк. Спасибо тебе)

  • @nikitakuznetcov8933
    @nikitakuznetcov8933 Месяц назад

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

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

    Не перестаю удивляться простоте повествования ... (если не считать первые секунды, когда зачитывается определение)

  • @user-xv1ix9cy4i
    @user-xv1ix9cy4i 5 лет назад +5

    Офигеть, это реально круто объяснено! Автор - ты молодец!

  • @user-tb7ve1qk8h
    @user-tb7ve1qk8h 7 лет назад +9

    Коротко и ясно! Спасибо большое, но хотелось бы еще видео по паттернам :)

  • @prodobreyy
    @prodobreyy 7 лет назад +3

    Супер! И настроение поднял, и тему усвоил. Отличный формат!

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

    На мой взгляд лучше второй вариант:
    При первом - все публичные методы и переменные объекта класса родителя будут доступны.
    При втором подходе (это ж композиция называется) ничего не светится да и жить легче.

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

      Разве интерфейс не будет их инкапсулировать в первом случае?

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

      Зависит от того, как сокрыты методы - private или protected, разве нет?

    • @mr2anderson-h5f
      @mr2anderson-h5f Год назад

      Модификаторы наследования есть. Или это в плюсах только?

    • @agnar878
      @agnar878 13 дней назад

      во врором случае тоже все доступно для екземплара созданного класа

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

    Я слишком экстремально жду следующий ролик.

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

    Можете сделать видео по Entity Framework? Очень крутая тема, можно многое рассказать на ее примере, и про множества и про интерфейсы и все все все.

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

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

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

    Забавно, у меня был похожий кейс, но я таки додумался запилить адаптер, не зная, что использовал сей неведомый паттерн %)

    • @kirillsviderski4739
      @kirillsviderski4739 4 года назад +4

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

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

    Безумно крутая подача, спасибо огромное!

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

    Круто!
    Будет продолжение по паттернам?

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

    Второй вариант ИМХО часто лучше, так как поможет избежать возможной проблемы в будущем, когда потребуется отнаследовать, а уже уппс(множественное наследование классов есть только в паре языков). Тут очень важным критерием выбора является возможность использования других методов кисокласса. В этом случае первый лучше.

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

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

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

    эхх, а ведь когда то видео эксрим цоде были реально полезны

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

    Просто замечательно, просто, понятно и моментами смешно)

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

    1:01 ухахахахахахахх))) в тему)))

  • @Das.Kleine.Krokodil
    @Das.Kleine.Krokodil 2 года назад +1

    Как то сложно. Вот простое объяснение:
    "Адаптер - это структурный паттерн проектирования, который позволяет объектам с несовместимыми интерфейсами работать вместе."

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

    супер объяснение, моожноо было ток в конце показать полностью uml схемку)

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

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

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

    Спасибо, все просто, понятно и главное - элегантно)

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

    Красавцы, мне нравится лойс )

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

    Это шедевр

  • @Nousberg
    @Nousberg 2 месяца назад

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

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

    за дотку сразу лайк мгновенно :3

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

    Нужно больше видео по паттернах!

  • @MartinEden-ps6ld
    @MartinEden-ps6ld 7 лет назад +3

    Офигеть)) спасибо))

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

    Царски рассказано. Спасибо!!!!!

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

    четкий гайд

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

    я синьор помидор, наконец-то все паттерны выучу ))

  • @NNNNN-sb1ev
    @NNNNN-sb1ev 9 месяцев назад

    Microsoft досих пор чтут традиции 0:46

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

    Весело получилось)

  • @gcomsu5819
    @gcomsu5819 Год назад +1

    Материал огонь, я хоть изучаю РНР но все же сморю видос и делаю на РНР и результаты вдвойне радуют... Продолжение нужно однозначно!!! Кому интересен пример на РНР вот он: interface IRequester
    {
    public function send(string $message): void;
    }
    class Requester
    {
    public function sendRequest(string $message): void
    {
    echo "Отправляем сообщение: $message
    ";
    }
    }
    $objectRequester = new Requester();
    $objectRequester->sendRequest('Привет мир!!!');
    // Реализация через Класс
    class Adapter1 extends Requester implements IRequester
    {
    public function send(string $message): void
    {
    $this->sendRequest($message);
    }
    }
    $objectAdapter1 = new Adapter1();
    $objectAdapter1->send('Паттерн Адаптер (Adapter1)');

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

    Лайк за Ёжика))

  • @user-yf9fz8zr7r
    @user-yf9fz8zr7r Год назад

    Спасибо!!

  • @Joy-dn8yz
    @Joy-dn8yz 3 года назад

    То есть, вместо того, чтобы менять шестерёнки в музыкальной шкатулке на шестерёнки с ручками (которые там не предусмотрены), мы просто приделываем к старым шестерёнкам ручки

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

    пздц. Даже я понял это
    Огромное спасибо

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

    0:46 windows 11: 🗿

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

    Спасибо, все очень доступно.
    Получается, что во втором варианте еще и sealed класс можно так модифицировать, а первый вариант такой возможности не даст.

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

    У мене просто бракує слів! Дякую вам за таке пояснення! Насміялася та ще й патерн зрозуміла!

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

    Мощь!!

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

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

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

    Годно!

  • @user-jh9gt6jw7s
    @user-jh9gt6jw7s 2 года назад

    спасибо

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

    Нехрена не понял, зачем нужен этот патерн, когда есть extantion метод

  • @user-ez6ng5ze6z
    @user-ez6ng5ze6z 5 лет назад

    Гламурный кисоклас

  • @agnar878
    @agnar878 13 дней назад

    А без интерфейса если, то все равно же адаптер ? Идея же таже

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

    простым людям непонятно

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

    Серьезно? Вот эта хрень - и есть паттерны?..
    тогда я их изначально знаю, по дефолту -_-

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

      большинство используют паттерны и не догадываются об этом)

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

    Классный урок. спс

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

    Странная оговорка относительно варианта не через наследование, а через композицию.

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

    А наследование как решение задачи не катит?

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

    Как часто можно встретить такую ситуацию в реальном проекте, что придется использовать Паттерн адаптер?

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

      реально нужно просто запомнить как это делается. через пару лет работы ты уже не думаешь "Так , вот тут я буду применять адаптер ". Ты просто по умолчанию так пишешь. Это как пдд и вождение: если спросить у водителя с опытом лет 10 какое то правило , то он навряд ли процитирует его буква в букву , но все равно будет соблюдать , т.к просто привык

  • @user-li5jh9gg9g
    @user-li5jh9gg9g 2 месяца назад

    а если интерфейса нет все? Адаптер не случится?

  • @user-fc3gh1rb7w
    @user-fc3gh1rb7w 3 года назад +1

    Тот случай, когда всегда это используешь и даже не знаешь, что у этого есть название)))

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

    А почему в данном примере нельзя сделать наследование нашего класса Requster с методом SendRequest() нельзя унаследовать от нужного нам интерфейса ISender с методом Send() и просто реализовать этот метод Send() внутри класса Requster, чтоюы в этом методе также вызывался метод SendRequest() ?

    • @drfclub777
      @drfclub777 Год назад +1

      Представь, что Requester - старый, давно устоявшийся в системе класс, который никак менять нельзя, иначе всё сломается. Adapter нужен, чтобы обернуть этот класс для получения нового функционала, который доступен в интерфейсе ISender.
      Например, представь давно существующий класс List. Ты не можешь и не должен менять его и добавлять туда что-то, но ты можешь создать Adapter для работы с этим классом, например для добавления 3-х элементов в одной операции в каком-нибудь методе add3Elements(el1, el2, el3).
      Надеюсь понятно объяснил

    • @agnar878
      @agnar878 13 дней назад

      посмотри черз комент выше

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

    Эээ, типа надо просто зафигачить класс и отнаследоваться?!))))) в питоне, это конечно жоподробильня, которая только усложняет код(я про интерфейсы), тем не менее - очень интересно👌

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

    Мне кажется, через экземпляр лучше

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

    Если правильно понял, то это аналог декоратора python

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

      неа. Декоратор (а это паттерн, не только фича в Python) изменяет поведение безотносительно добавления интерфейса в недоступный для изменения класс. Т.е., там мы подсовываем (декорируем) исходный класс/методы некоей функциональностью, но новый интерфейс можем и не добавлять

  • @Youtube-pomoyka
    @Youtube-pomoyka 3 года назад

    Какого чёрта, я не зная с# понимаю абсолютно всё, что здесь написано, но я знаю с/с++ и думаю, а сложно ли мне будет изучать с#.....

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

    чёт я не понял 🤔 Зачем такие сложные смысловые конструкции с "паттернами" и другими умными словами, если адаптер это по сути методика наделения определённым интерфейсом недоступным для модификации класса?
    Посмотрим конечно следующие видосы. Может в этом появится смысл.

  • @user-gr5fb5ip5l
    @user-gr5fb5ip5l 4 года назад

    Использовать чтоб в доту играть?

  • @gameprogressru
    @gameprogressru 7 лет назад +1

    Кисоклассс

  • @user-ey5xw2nx9s
    @user-ey5xw2nx9s 3 года назад

    Я всегда делал через жопку :)

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

    в С++ это абстрактный класс я правильно понимаю ?

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

      Почти. Это абстрактный класс у которого нет полей и все методы публичные+ чисто-виртуальные.

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

    ух ты как понятно то)

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

    Спасибо. А кисокласс это что?

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

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

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

      Киса-класс спрятан в dll, твои действия?

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

      @@n_raven Можно нихуйя не делать?

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

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

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

    Ахуенно!

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

    Я не понимаю зачем учить паттерны, какие-то фреймворки (в случае с js), если ещё не выучен и не отточен нативный язык программирования

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

    Гэроям Слава!

  • @pnt7791
    @pnt7791 7 лет назад +1

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

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

    Да уж ну и объяснение. Я сомневаюсь что "маленьким" нужен весь этот стёб. Чтобы понять хоть какой то паттерн нужен нормальный пример. Спросят тебя на собеседовании : напишите демонстрацию этого патерна. А у тебя и пф... Только кисокласс в голове...

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

      приведен же пример в начале

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

      @@gaijin_nnsu и в конце, отличные примеры)

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

    Лезть в чужой код...извращенцы.

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

      Да мы ток посмотреть...
      Оу... а вот эту публичную переменную я бы "так" назвал...
      Эй... этот метод походу можно private сделать...
      Коммит.
      Пуш... сразу в мастер пусть!
      Ну лан. Я пошёл

  • @Km-pn3hf
    @Km-pn3hf 5 лет назад

    спасибо