Factory Method pattern

Поделиться
HTML-код
  • Опубликовано: 23 дек 2024
  • In this video I'll show you why you need a factory method pattern. And explained how the factory method pattern affects the architecture of the application.
    PS Example for factory method done at an accelerated pace, and if somewhere mistakes in the comments littering) If you find an error will be grateful for the pool request as amended.
    EXAMPLE: github.com/nic...
    Interfaces in practice: • Интерфейсы на практике
    Polymorphism in practice: • Полиморфизм на практике
    Channel Telegram: t.me/extremeco...
    ● VK: bit.ly/vk_extre...
    ● Telegram Chat: bit.ly/telegram...
    ● Twitter: bit.ly/twitter_...

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

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

    Сори за очепятки и оговорки. Монтажил в 4 утра :D

  • @ДенисШаров-п1ш
    @ДенисШаров-п1ш 4 года назад +574

    Увы, но это дизлайк. Подача с мемчиками и смехуечками - это прекрасно и действительно смотрится свежо, и не так "академически", как у многих авторов, но в данном видео есть одна большая проблема - содержание и проблемы с матчастью.
    А теперь разъеб по фактам.
    Автор начал рассказывать проблему и по-началу все было правильно до тех пор, пока он не перешел к решению. Представленное решение с выносом "порятнок" в отдельные классы и делегированию им логки порождения объектов - это не "Фабричный Метод", а "Абстрактная Фабрика". Шаблоны действителльно похожи и их часто путают или смешивают между собой, но в них есть кардинальные отличия и я объясню их.
    Автор в конце видео верно заметил, что все шаблоны проектирования всегда решают какую то задачу или проблему, и именно в задачах кроется разница. Фабричный метод - это порождающий шаблон проектирования, смысл которого вынести логику создания объектов из абстракции в конкретные реализации этой абстракции. Что есть реализация, а что - абстракция? Абстракция - это некая логика работы программы. Эта логика не зависит от конкретных объектов и оперирует любыми из них одинаково. Для кода, содержащего абстрактную логику, в сущности, нет никакой разницы, с какими объектами он должен работать. Реализация - это, напротив, непосредственно детали, от которых зависит результат выполнения абстрактной логики.
    Развивая пример автора в нужную сторону можно предположить, что для нашего супер-экшен-хорора существует множество локаций, одна из которых - это Парк. Объект Game отвечает лишь за то, чтобы собрать какую-то локацию и запустить в ней уровень, поэтому он откуда-то берет некий объект GameLocation и вызывает у него метод createLevel(). Метод createLevel() одинаковый для всех видов локаций - он создает объект персонажа, декорации, монстров, пасхалки, предметы для интерактива и много всего еще. Как читатель успел заметить, в описании работы метода createLevel() я оперирую абстрактными понятиями: "моб", "декорация", "предметы интерактива" и т.п. Для отработки этого кода не так уж важно, какие именно мобы создаются и как они выглядят. Главное - создать КАКИХ-ТО мобов с помощью метода createEnemy(). Также следует понимать, что локаций много и мобы в них разные. В локации Детской площадки мы создаем яжматерей и бабок у скамейки, в парке - гопников и алкашей, в собственной хате - пьяного батю и поехавшего деда. Именно от этой конкретики и зависит уровень, так что, избегая развесистого if с выбором нужного моба, делегируем реализацию этой конкретики наследникам объекта GameLocation - ParkLocation, ApartmentLocation, PlaygroundLoaction и реализуем в них абстрактный метод createEnemy(). Любой из этих методов может попасть к объекту Game и любой из них по-своему создает объекты, которые нужны в ходе работы метода gameLocation.createlevel(). Эти самые методы, создающие объекты, такие как createEnemy() и называются Фабричными методами.
    Теперь о фабрике. Абстрактная фабрика - это порождающий шаблон проектирования, который позволяет инкапсулировать создание семейств объектов. В видео автор предложил инкапсулировать логику создания объектов в отдельную иерархию класса, но до конца пример не довел и не объяснил главное предназначение примененного приема. Дабы не уходить в сторону от показанного в видео, буду исходить из примера про уровни сложности локации Парк с минимальными корректировками. Представим, что нам нужно реализовать генерацию мобов по уровням сложности. У нас могут быть простые мобы, средние и сложные. Скажем, на легком уровне у нас будут создаваться (по возрастающей) Shkolnik, Alkash, Exhibitionist, на среднем - Alkash, Exhibitionist, Gopnik, на харде - Exhibitionist, Gopnik, BuhoyMent. Выносим методы createRegularEnemy, createMediumEnemy, createBossEnemy в один интерфейс IParkEnemyFactory и пишем три реализации - EasyPark, MiddlePark, HardPark, в которых создаются семейства объектов для каждого уровня.
    Класс (интерфейс) IParkFactory - абстрактная фабрика, которая своими методами порождает объекты IEnemy, а ее реализации отвечают за создание семейств согласованных по смыслу объектов. Абстрактную фабрику может использовать класс GameLocation или Game и порождать монстров согласованно.
    Резюмируя: Фабричный метод порождает объекты и его использование основано на наследовании, абстрактная фабрика порождает семейства объектов и ее использовании основано на композиции или агрегации.
    P.S Всем дочитавшим печенек и много защекоинов.
    Пойду, что-ли, свой канал по паттернам заведу.

    • @HerrHoldem
      @HerrHoldem 4 года назад +25

      Огромное спасибо! Очень подробно и доступно, я даже законспектировал.

    • @Dez-dl2gn
      @Dez-dl2gn 4 года назад +9

      спасибо, сохранил 8 минут моего времени

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

      Спасибо за развёрнутый ответ!

    • @vladislavstepanov7591
      @vladislavstepanov7591 4 года назад +8

      по моему это просто доеб ради доеба

    • @iharbakhanovich
      @iharbakhanovich 4 года назад +12

      Расхуярил смехуярика

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

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

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

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

  • @youngwizard7711
    @youngwizard7711 3 года назад +5

    Ничего не понимаю, но смотрю каждое видео

  • @ImgryNumber
    @ImgryNumber Год назад +3

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

  • @alexandrsheludko9758
    @alexandrsheludko9758 5 лет назад +49

    Луркоформат самое оно.

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

    Отличная идея для игры

  • @ИмяФамилия-т8б8б
    @ИмяФамилия-т8б8б 6 лет назад +136

    Это. Просто. Ахуенно. Прям та подача, которой не хватало техническому ютубу.

  • @НектоНеизвестный-л5ч

    Писал в университете лабу с этим паттерном (т.е. имел понятие, как он должен выглядеть), но до сих пор не понимал, зачем он нужен. Когда пришла необходимость понять, прочел статью refactoring.guru. Не добившись результата, посмотрел другой видос на ютубе (Там тоже не получил полного понимания). Когда посмотрел твое видео, уже что-то начало более менее проясняться. Зашел по ссылке в описание в примеры с уверенностью после объяснения на видео, что там я точно получу ответ, и после этого я наконец-то полностью понял смысл данного паттерна. Спасибо)

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

    Давай еще, буду смотреть все. И поржал и понял.

  • @ryazanov13
    @ryazanov13 4 года назад +50

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

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

      Чел прав

    • @ARTOMYS
      @ARTOMYS Год назад +4

      Че

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

      @@ARTOMYS я тоже них*я не понял. вот любят многие выежнуться словечками))

    • @МихаилСитников-р9я
      @МихаилСитников-р9я Год назад +4

      @@policedog757 просто в видео описан другой паттерн пёс.паттерн - абстрактная фабрика, вместо - фабричный метод. и там и там фабрика (оба порождающие паттерны) но они разные.

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

    Невероятно доходчивый метод объяснения, как и у всех остальных твоих видео. Большущий лайк)

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

    Очень доступно и понятно. Автор, ты молодец!

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

    В целом довольно не плохо интерпретировал, но вот за "var" в Cool Example я б спросил)))

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

    На 6 минуте - еще в скобочки можно параметр засунуть и в зависимости от него будет создаваться тот или иной объект. В этом основная разница между подобным методом и конструктором.

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

      Да, можно использовать какие-то дополнительные данные, которые могут поступить из конструктора. Но это всё не обязательные условия. Влиять на порождение объектов может всё что угодно по вашему желанию. Как я уже говорил в видео, это всё разные формы одного и того же паттерна.

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

    Супер!

  • @andreysvitlov7807
    @andreysvitlov7807 7 лет назад +89

    Без кода, непонятное дерьмо становится еще более запутанным.

    • @DadundddaD
      @DadundddaD 8 месяцев назад

      Так есть же код.

  • @andredru4278
    @andredru4278 7 месяцев назад

    Спасибо. Вроде полезно.

  • @tony-p864
    @tony-p864 7 лет назад

    Годнота! Клепайте ещё! :)

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

    Лайк за интерфейс IBidlo

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

    огонь
    спасибо

  • @webmiindfreak
    @webmiindfreak 7 лет назад +25

    Расскажите про MVC паттерн, пожалуйста

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

      сначала про ещё некоторые патерны должен рассказать, как минимум наблюдателя

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

      нахера? наблюдатель тоже саме что и делегаты, достаточно понимать их

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

      скорей реализация этого паттерна

  • @АндрейФамилия-ц6н
    @АндрейФамилия-ц6н 7 лет назад +13

    Классный канал. Жаль интервалы между видео иногда большие.

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

    Однозначно лайк. Буду сильно благодарен если продолжите раскрывать тему паттернов.

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

    это шедевр )

  • @YuraYurik
    @YuraYurik 7 лет назад +19

    Про рефлексию видосик?

  • @andreikashin
    @andreikashin 7 лет назад +11

    как можно ставить дизлайк такому шедевру?

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

    все просто и понятно! жду еще!)

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

    ВидеВо 10 из 10)))) посмотрел и подписался!

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

    Хороший канал!!! Очень жду где будем учить unity и писать игру!!!

  • @KENISEG
    @KENISEG 2 года назад +2

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

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

    прекрасно, спасибо

  • @ВладимирВоробьев-е6о
    @ВладимирВоробьев-е6о 4 года назад +1

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

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

    1:00 слышно как он подумал что назвать следующим и решил не тратить еще 15 минут перезаписуя этот момент

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

    лучший
    2021

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

    А что мешает сделать один класс BidloFactory и передавать ему int параметр уровня сложности? Зачем нужен интерфейс?

    • @ИапГоревич
      @ИапГоревич 3 года назад

      Костыльно: пойдёт разветаления в "switch" или "if"

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

    ржу))) Полезно и просто, спасибо

  • @Bmj0yp
    @Bmj0yp 7 лет назад +43

    Лайк, конечно же, но когда будут потоки и параллельные вычисления для особо маленьких и тупых?

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

      +

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

      @@guitarplayerJS ruclips.net/video/D9qcKV4j75U/видео.html&ab_channel=%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%8D%D1%82%D0%BE%D0%BF%D1%80%D0%BE%D1%81%D1%82%D0%BE

  • @disol588
    @disol588 3 года назад +3

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

  • @Ничтожество-и5ш
    @Ничтожество-и5ш 6 лет назад

    Ты лучший!

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

    Бомба!😍

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

    Лайк, если ставил на паузу, чтобы прочитать всех обитателей парка

  • @ИльяСлободанюк-щ1и
    @ИльяСлободанюк-щ1и 7 лет назад +2

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

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

      а ты представь если на этих уровнях будет скажем логика отличатся, например будет метод createEnemy() и в разных классах ты просто по разному его реализуешь, в одном кинешь слабого противника return new EasyEnemy, в другом среднего и тд. и это самый легкий пример логики, она может быть огромная, типа разной реакции на цепочку событий, как в хоррорах

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

      @@fediciv обычная колода карт и частота генерации

  • @ОлексійБубенко-ж5х
    @ОлексійБубенко-ж5х 3 года назад

    Автор: говорит "вобщем и целом". Щербаков: бляяяяяяяяяяяя

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

    Это когда чоткий пацан решил инициализироватт интерфейс, но его название не пропустила IDE

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

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

    • @SergeyKomarov-k1k
      @SergeyKomarov-k1k 5 лет назад

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

    • @SergeyKomarov-k1k
      @SergeyKomarov-k1k 5 лет назад

      @@Nandarion понял, спасибо

    • @ИапГоревич
      @ИапГоревич 3 года назад

      @@SergeyKomarov-k1k Говорят, что классы-утилиты - это плохо, но я точно не знаю

  • @АндрейТаранов-ь8э
    @АндрейТаранов-ь8э 2 года назад +3

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

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

    А видео по атрибутам будет?

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

    Про абстрактную фабрику давай!!)

  • @ЕгорТвердохлеб-й2р

    А планируются продолжения паттернов?

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

    Поясните плиз упоминание инкапсуляции здесь. Где она?

    • @НиколайНиколаев-ю6п
      @НиколайНиколаев-ю6п 7 лет назад +2

      Принцип инкапсуляции тут строится на пространствах имён.
      Пространство имён с фабрикой, знает о быдлоиерархии, но не знает ничего о других частях программы. Ни о игре, ни о парке, ни о игровых объектах фабрики вообще не в курсе. Другие части программы имеют дело только с фабриками и знают о них, но ничего не знают о быдлоиерархии.

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

    А это не абстракция фабрика?

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

      Почти, как по мне то что он описал здесь (ruclips.net/video/ZAh3NQ9WiSg/видео.htmlm53s) и есть фабричный метод (только как минимум нужен параметр в методе согласно которому будут создаваться разные типы объектов), а то что он презентовал все время - это слегка недоделанная абстрактная фабрика.

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

      Фабричный метод и абстрактная фабрика очень похожи. Разница заключается в том, что абстрактная фабрика порождает связанные объекты из разный иерархий.
      P.S. Многие считают, что
      public IEnemy Create(enum data){
      switch(data){
      case enum.first:
      return Bidlo();
      case enum.second:
      return Alkash();
      ....
      }
      }
      является абстрактной фабрикой, но это не так. На самом деле это пример обычного фабричного метода.

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

      Я правильно понимаю, Абстрактная фабрика это когда есть два или больше метода, которые возвращают реализации разных интерфейсов? вместо одного, как в фабричном методе?Если очень грубо

    • @НиколайНиколаев-ю6п
      @НиколайНиколаев-ю6п 7 лет назад

      Да, правильно. Но эти два или больше объекта должны быть как-то связаны.

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

      Да, я это и имел ввиду. Просто в видео несколько фабричных методов, что автора исходного поста и спутало.

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

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

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

    Господи, как я ору, лучший

  • @НиколайСивохин-я5м
    @НиколайСивохин-я5м 3 года назад

    в пятницу например больше алкашей, а в четверг больше гопников, чтобы настрелят на алкашку

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

    Только фабричный метод это не класс, а метод со свитчем внутри в базовом классе, который по параметру и возвращает новый производный класс.

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

    Кстати в udk та-же система создания обьектов.

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

    Ninject ведь для этой цели тоже используется? Продолжайте снимать видосы про паттерны, хоть так их попробую выучить)

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

      Ninject это DI/IoC, совершенно разные вещи на самом деле

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

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

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

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

  • @СвятославЧеркасов-ы5щ

    парни, что за трек

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

    нихуя не понял, но очень интересно

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

    Слегка напомнил концепцию полиморфизма.

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

    Зачем создавать отдельный класс Фабрики, если можно всё это сделать в конструкторе Park???

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

    тю.. всю жизнь так пишу, а что такое паттерны не пойму и по сей момент -_-
    в прочем, я и в ООП не нашел ничего нового, странного или неестественного..

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

    Кто понял что к чему? 8*ой раз раз читаю код проекта (из гитхаба), ну ни как не получается вшить в голову, суть того как применяется. Да фабрики.. инкапсуляция, и синтаксис, Технически все понятно, НООО смысловая нагрузка для пере - использования подхода в своих проекта Ни как пока не пойму, как ....

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

    единственное нормальное описание!

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

    Я вот вообще не кодер, не программист, просто мимо проходящий инженер. У меня вопрос к знающим: программистов вообще учат думать головой при обучении? При решении любой задачи любой человек создаёт систему алгоритмов. Эти алгоритмы так или иначе связаны между собой. То, каким образом человек решает эту систему и показывает его профессионализм. Другими словами, профессионал максимально упростит себе работу и этим максимально оптимизирует решение задачи ещё на этапе проектирования используя фичи, про которые рассказывает автор в цикле про ООП. Эти фичи ведь не только в программировании работают, но и в других сферах, где необходимо решение многоступенчатых задач со множеством неизвестных изначально либо изменяющихся во времени переменных. Получается очень унылая картина. Программистов мало, вокруг одни кодеры. Программист это инженер, а какой инструмент (читать "язык программирования") он использует, не имеет значения. Как электрик, который не будет винт под шлиц откручивать крестовой отвёрткой. Кодер выучит наизусть стандарт, но это ведь не сделает его инженером. Печатная машинка ведь не учится как нейросеть. Инженер (программист в частности) это стиль мышления, направленный на понимание каким инструментом пользоваться в определенной ситуации, а кодер это умение инструментом пользоваться.

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

      @@SecondChan именно это и хотел сказать

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

      @@SecondChan "Программист - это склад ума" - тотал булшит. Программирования - это такая же профессия как большинство остальных, в которых требуется квалификация. Инвестируешь тонну часов - становишься профи, как и везде.

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

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

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

    Чего то в гите ничего нет.

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

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

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

    Голова болит

  • @mr.lubynets
    @mr.lubynets 3 года назад

    топ топ топ топ топ топ

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

    Кто сильнее гопник, алкаш ил. Эксбиционист

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

    Ну и фантазия у тебя, лечится надо

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

    douuuuu

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

    Го некст паттерн

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

    как я вообще сюда попал.

  • @highdpiplayer.
    @highdpiplayer. 3 года назад

    Drachun

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

    Чуваки, но это ж не фабричный метод ( плак

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

    Вообще ничего не понятно. что за бред?

  • @vasil-vasil
    @vasil-vasil 5 лет назад

    Заебцом

  • @12strel
    @12strel 3 года назад

    Ничего не понятно.

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

    это не фабричный метод) он проще)

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

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

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

    Дружище, нравится твои видео, но тут просто эпик фэйл, потому что фабричный метод это совсем не то, что ты тут описываешь. Может хватит пилить видосы в 4 утра, лучше проспись.

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

    Вабще пофиг.

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

    эммм обычный логический подход епта

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

    зашумил восприятие матом и мемасиками, ничего не объяснил

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

    Слава Украйини

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

    FactoryMethodLesson/CoolGood/Factory/Program.cs 34 строка комент с ошибкой( не благодари)