Design patterns в swift с нуля: урок 3 - Abstract Factory (Абстрактная фабрика)

Поділитися
Вставка
  • Опубліковано 21 жов 2024
  • Третья серия по обучению паттерны проектирования в программе Xcode.
    Куда присоединиться:
    Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/thes...
    1.Наше сообщество в вк(более 6 + тыс) = theswif...
    2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - ​t.me/joinchat/...

КОМЕНТАРІ • 35

  • @waizdream
    @waizdream 3 роки тому +3

    27:00. Ахаха, заставило улыбнуться, спасибо :)

  • @valeraroman1282
    @valeraroman1282 4 роки тому +3

    Бомба, дуже класно пояснюєте!!!

  • @jackdanyal4329
    @jackdanyal4329 3 роки тому

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

  • @itananas
    @itananas Рік тому

    Лучшие уроки, просто супер, просто 10/10 :))))

  • @MegaDigri
    @MegaDigri 5 років тому +2

    Очень удобный паттерн, Евгений, как всегда, объяснение и подача ТОП

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому +2

      для вас стараюсь что б именно так и написали)

  • @theswiftdevelopers1301
    @theswiftdevelopers1301  4 роки тому

    Куда присоединиться:
    1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers
    2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg
    p.s
    Домашние задание: смотрите в группах!
    Если все понравилось ты знаешь что делать;)
    Ставь лайк и пиши комент! :)

  • @hryst19
    @hryst19 5 років тому +7

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

  • @ГеоргийСоколов-э6ъ
    @ГеоргийСоколов-э6ъ 5 років тому +7

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

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому

      вот скрины бы с решением , а то на слух как то не то

    • @ГеоргийСоколов-э6ъ
      @ГеоргийСоколов-э6ъ 5 років тому +7

      @@theswiftdevelopers1301Скрины не знаю как приатачить, вот код
      // объявляем переменную (глобальную, свойство AppDelegate, синглетона), в данном случаем ViewController
      var furnitureFactory: AbstractFactory!
      @IBAction func createFactoryAction(_ sender: UIButton) {
      // в зависимости от настроек (в данном случае UISegmentControl) инициируем конкретную фабрику
      switch typeSegment.selectedSegmentIndex {
      case 0:
      furnitureFactory = BadroomFactory()
      case 1:
      furnitureFactory = KitchenFactory()
      default:
      break
      }
      }
      @IBAction func createFurneturesActions(_ sender: UIButton) {
      // макет создания нужных нам объектов (код как-бы размазан по всей программе)
      let chair = furnitureFactory.createChair()
      let sofa = furnitureFactory.createSofa()
      let table = furnitureFactory.createTable()
      //
      print(chair.description)
      print(sofa.description)
      print(table.description)
      }

  • @antonilin3123
    @antonilin3123 6 років тому

    Спасибо за урок. Всё хорошо объяснил. Конечно, для полного понимания нужно практиковаться.

  • @IhorFedii-n1i
    @IhorFedii-n1i 3 роки тому

    наконец то я понял))) спасибо

  • @dmitryzhdanov8787
    @dmitryzhdanov8787 5 років тому +3

    Редко пишу комментарии, но здесь захотелось дать дельное, на мой взгляд, предложение. Можно было на подобие с упражнениями из прошлого урока сделать протокол "мебель" и от него уже наследовать протоколы "стул", "стол" и тд. А фабрика возвращала бы не конкретное число конкретных объектов, а просто массив мебели (стулья, столы). Таким образом можно избежать второго недостатка с тем, что все фабрики возвращают конечное число объектов. Дальше все это раскидать по enum'ам и в фабрику передавать массив enum'ов, как компоненты в дате. Например, BedroomFactory.shared.create([.chair, .table]), на выходе получим массив мебели в котором будет лежать стул и стол для спальни.

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому

      ну я прям по щаблону реализовывал там типы должны быть разные

  • @FominValera
    @FominValera 3 роки тому

    Спасибо

  • @valikganzalik7069
    @valikganzalik7069 5 років тому +2

    Спасибо огромное за видео! Но такой вопрос, а в каких именно группах искать дз?

  • @ЕвгенийЛатушкин-г2ь
    @ЕвгенийЛатушкин-г2ь 5 років тому +4

    Возможно глупый вопрос, но все таки зачем нужен был протокол Abstract Factory если мы все равно напрямую обращаемся к фабрикам ?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому

      что б у фабрик был один родитель, и этого требует uml диаграмма

    • @ЕвгенийЛатушкин-г2ь
      @ЕвгенийЛатушкин-г2ь 5 років тому

      @@theswiftdevelopers1301 так а практическое применение у него ж должно быть, или только "абы было" ?

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  5 років тому

      практическое я показал

    • @ЕвгенийЛатушкин-г2ь
      @ЕвгенийЛатушкин-г2ь 5 років тому

      @@theswiftdevelopers1301 я наверное не корректно задал вопрос, зачем нужен один родитель для фабрик, если этого требует только UML диаграмма? Ведь по сути можно было бы обойтись без абстрактной фабрики и использовать 2 обычные.

    • @aboba_dev_channel
      @aboba_dev_channel 5 років тому +1

      @@ЕвгенийЛатушкин-г2ь но ведь если ты захочешь добавить мебель для ванной, тебе придется делать 3 фабрику и обращаться теперь уже к 3 разным фабрикам опять же через if else. А так, по сути, у тебя единая точка доступа

  • @artma5
    @artma5 5 років тому +1

    *Ребят,* не каждый преподаватель сможет так наглядно и доступно объяснить. _ПОЭТОМУ НЕ ЗАБЫВАЙТЕ СТАВИТЬ ЛАЙК!_

  • @swiftproger
    @swiftproger 6 років тому

    Спасибо 😊 Евгений!!! Второй урок еще не проработал (усвоил). Уже третий на очереди. Я тут простой видос с обьяснением хотел знакомому записать, так с одного дубля не получилась. Одна из причин почему твои видосы заходят, так это то что ты записываешь их практически без монтажа, если где то ошибся, то ищешь по факту, а не на паузе. Хотя у других авторов это почему то бесит когда они по ходу видео ищут баги.

    • @theswiftdevelopers1301
      @theswiftdevelopers1301  6 років тому

      да), это иногда не просто на одном дыхании с первого раза)

  • @ВиталийИсхаков-ъ8с
    @ВиталийИсхаков-ъ8с 5 років тому

    Спасибо! Отличный урок

  • @boggromaful
    @boggromaful 4 роки тому +1

    Куда второй лайк поставить? ... или третий... или...

  • @Eugemka
    @Eugemka 5 років тому

    Евгений, спасибо за шикарный и понятный урок. Моя реализация этого урока здесь: github.com/eryshkov/Abstract-Factory