Design patterns в swift с нуля: урок 3 - Abstract Factory (Абстрактная фабрика)
Вставка
- Опубліковано 21 жов 2024
- Третья серия по обучению паттерны проектирования в программе Xcode.
Куда присоединиться:
Всем привет, теперь вы сможете меня поддержать и получить эксклюзивные и закрытые видео смотреть тут - boosty.to/thes...
1.Наше сообщество в вк(более 6 + тыс) = theswif...
2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 3 000 + тыс) - t.me/joinchat/...
27:00. Ахаха, заставило улыбнуться, спасибо :)
Бомба, дуже класно пояснюєте!!!
паттерн на самом деле очень мощный, но и на самом деле редко встречается случаи, когда его можно полноценно использовать. за уроки спасибо. все четко и по делу.
Лучшие уроки, просто супер, просто 10/10 :))))
Очень удобный паттерн, Евгений, как всегда, объяснение и подача ТОП
для вас стараюсь что б именно так и написали)
Куда присоединиться:
1.Наше сообщество в вк(добаляемся к более 3,5 тыс) = vk.com/theswiftdevelopers
2.В телеграмме мы помогаем новичкам и всем желающим (нас больше 1,500 тыс) - t.me/joinchat/BAn0BkLMGrfpDYy2cnysNg
p.s
Домашние задание: смотрите в группах!
Если все понравилось ты знаешь что делать;)
Ставь лайк и пиши комент! :)
Евгений здравствуйте, а где-то можно глянуть ваши уроки по core data. По подаче материала вы Топ уровень, и хотелось бы услышать эту тему из ваших уст.
Спасибо за хорошое представление паттерна. Но немного некорректная реализация создания объектов. Не используется абстрактная фабрика. Ведь вся фишка данного паттерна - это реализация абстрактной фабрики конкретной фабрикой в одном месте, и затем создание объектов, как правило, в разных местах программы с помощью абстрактной фабрики. В результате для изменения семейства объектов код меняется в одном месте.
вот скрины бы с решением , а то на слух как то не то
@@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)
}
Спасибо за урок. Всё хорошо объяснил. Конечно, для полного понимания нужно практиковаться.
это не очень сложно нужно суть уловить
наконец то я понял))) спасибо
Редко пишу комментарии, но здесь захотелось дать дельное, на мой взгляд, предложение. Можно было на подобие с упражнениями из прошлого урока сделать протокол "мебель" и от него уже наследовать протоколы "стул", "стол" и тд. А фабрика возвращала бы не конкретное число конкретных объектов, а просто массив мебели (стулья, столы). Таким образом можно избежать второго недостатка с тем, что все фабрики возвращают конечное число объектов. Дальше все это раскидать по enum'ам и в фабрику передавать массив enum'ов, как компоненты в дате. Например, BedroomFactory.shared.create([.chair, .table]), на выходе получим массив мебели в котором будет лежать стул и стол для спальни.
ну я прям по щаблону реализовывал там типы должны быть разные
Спасибо
Спасибо огромное за видео! Но такой вопрос, а в каких именно группах искать дз?
в вк
Возможно глупый вопрос, но все таки зачем нужен был протокол Abstract Factory если мы все равно напрямую обращаемся к фабрикам ?
что б у фабрик был один родитель, и этого требует uml диаграмма
@@theswiftdevelopers1301 так а практическое применение у него ж должно быть, или только "абы было" ?
практическое я показал
@@theswiftdevelopers1301 я наверное не корректно задал вопрос, зачем нужен один родитель для фабрик, если этого требует только UML диаграмма? Ведь по сути можно было бы обойтись без абстрактной фабрики и использовать 2 обычные.
@@ЕвгенийЛатушкин-г2ь но ведь если ты захочешь добавить мебель для ванной, тебе придется делать 3 фабрику и обращаться теперь уже к 3 разным фабрикам опять же через if else. А так, по сути, у тебя единая точка доступа
*Ребят,* не каждый преподаватель сможет так наглядно и доступно объяснить. _ПОЭТОМУ НЕ ЗАБЫВАЙТЕ СТАВИТЬ ЛАЙК!_
это не просто), соглашусь)
Спасибо 😊 Евгений!!! Второй урок еще не проработал (усвоил). Уже третий на очереди. Я тут простой видос с обьяснением хотел знакомому записать, так с одного дубля не получилась. Одна из причин почему твои видосы заходят, так это то что ты записываешь их практически без монтажа, если где то ошибся, то ищешь по факту, а не на паузе. Хотя у других авторов это почему то бесит когда они по ходу видео ищут баги.
да), это иногда не просто на одном дыхании с первого раза)
Спасибо! Отличный урок
и все понятно?)
The Swift Developers и школьник поймёт)
Куда второй лайк поставить? ... или третий... или...
Евгений, спасибо за шикарный и понятный урок. Моя реализация этого урока здесь: github.com/eryshkov/Abstract-Factory
спасибо за отзыв