Фабричный метод

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

Пікірлер: 153

  • @user-sm4el8xh8g
    @user-sm4el8xh8g6 жыл бұрын

    Сам Иисус учит нас паттернам :D

  • @loam

    @loam

    5 жыл бұрын

    а после идет гулять по воде

  • @pymentor.

    @pymentor.

    4 жыл бұрын

    Аминь

  • @__alexfox__

    @__alexfox__

    4 жыл бұрын

    =)))) Я первым делом так и подумал, Иисус тоже кодит!

  • @MrAbad202

    @MrAbad202

    3 жыл бұрын

    @@__alexfox__, а утконос -- это баг?

  • @__alexfox__

    @__alexfox__

    3 жыл бұрын

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

  • @youxxxgun9001
    @youxxxgun90015 жыл бұрын

    Благодарю тебя, Отец Володимир)

  • @BagratS
    @BagratS7 жыл бұрын

    Я люблю этого парня. Просто шикарное объяснение. Спасибо большое.

  • @user-ow6dr9ok6c

    @user-ow6dr9ok6c

    Жыл бұрын

    Да, _Уровень "красный"!

  • @Nikita04111991
    @Nikita041119918 жыл бұрын

    Наконец то я нашел видеоуроки в которых объясняют паттерны понятным человеческим языком. Одного просмотра хватило чтобы всё стало ясно

  • @user-mf7dj6yw7q

    @user-mf7dj6yw7q

    2 жыл бұрын

    А мне нет :с

  • @GlassedUA
    @GlassedUA8 жыл бұрын

    Батюшка преподает дизайн паттерны ? Хмм это же офигенно!

  • @nikolaiii3

    @nikolaiii3

    6 жыл бұрын

    Это не батюшка, это Шан-Тсунг. Глаза видел?

  • @user-lv9uz2hk2u

    @user-lv9uz2hk2u

    6 жыл бұрын

    Не знаю почему, но я смеялся пол часа с этого комментария )))))))))))

  • @sergey-shalaev

    @sergey-shalaev

    5 жыл бұрын

    Батюшка не батюшка, а разложил по полочкам всё как боженька

  • @loam

    @loam

    5 жыл бұрын

    @@sergey-shalaev Ага, кашерно прям.

  • @hmixa

    @hmixa

    4 жыл бұрын

    @@sergey-shalaev Бредово разложил если честно, почитайте мой комент.

  • @andyanderson222
    @andyanderson2222 жыл бұрын

    "Раз уж это русский язык, назову переменную Ж" - это было ОООЧЕНЬ многозначительно. В оценке ситуации с Вами полностью согласен)

  • @Ruslan_Ishmuratov

    @Ruslan_Ishmuratov

    2 жыл бұрын

    🤣🤣🤣🤣👍

  • @user-ow6dr9ok6c

    @user-ow6dr9ok6c

    Жыл бұрын

    😁, тонко

  • @user-mh1mi4xv1h
    @user-mh1mi4xv1h3 жыл бұрын

    Потрясающе, почему не нахожу такого толкового объяснения нигде?! Большое спасибо

  • @athena6043
    @athena60436 жыл бұрын

    Спасибо за видео, Владимир. Надеюсь вы продолжите снимать ролики о паттернах.

  • @user-xd6mk4fp2l
    @user-xd6mk4fp2l6 жыл бұрын

    Самый лучший преподаватель, каких только уроков я не смотрел, всегда самые понятные и доходчивые у Volodya Mozhenkov

  • @user-ow6dr9ok6c

    @user-ow6dr9ok6c

    Жыл бұрын

    +

  • @any3develop282
    @any3develop2826 жыл бұрын

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

  • @learnz1373
    @learnz13734 жыл бұрын

    Полнедели понять не мог практическое применение. Спасибо. Огромное спасибо

  • @alexanderakhtyrtsev5776
    @alexanderakhtyrtsev57764 жыл бұрын

    Спасибо огромное за такое чёткое объяснение)

  • @brunkovsky
    @brunkovsky8 жыл бұрын

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

  • @VladimirMozhenkov

    @VladimirMozhenkov

    8 жыл бұрын

    +Stas Brunkovsky О, поверьте, у меня есть предпочтение и языка и операционной системе. Просто здесь я объясняю вещи, связанные с программировании вцелом.

  • @brunkovsky

    @brunkovsky

    8 жыл бұрын

    +Vladimir Mozhenkov Ну да, как и у всех нас. Но не ставите на этом акцент. И, как мне показалось, уважительно относитесь к пользователям всех операционных систем и языков программирования. Благодаря тому, что рассказываете про общее, а не частное.

  • @user-cw4sc2le1q
    @user-cw4sc2le1q5 жыл бұрын

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

  • @infinityen7659

    @infinityen7659

    2 жыл бұрын

    какой курс ?

  • @4everTHEbeatlemania
    @4everTHEbeatlemania8 жыл бұрын

    Класс, всё доступно и понятно! Спасибо!

  • @antonbeton5738
    @antonbeton57387 жыл бұрын

    Крутое видео, крутой канал. Как будет время все пересмотрю

  • @babai5655
    @babai56552 жыл бұрын

    Фабрика - это класс в котором задается фабричный метод создания продукта, который определяет стандартный вариант поведения. Затем он делегирует подробности создания подклассам. В принципе клиент не обязательно должен вызывать непосредственно метод "СоздатьМебель" Клиент может вызвать метод фабрики, фабрика выполнит стандартные действия - например, создаст накладные. А потом уже сама вызовет"СоздатьМебель" чтобы получить стол или стул.

  • @IIIA_KO
    @IIIA_KO2 жыл бұрын

    6 лет назад вышел ролик, но полезно и сейчас

  • @valshin
    @valshin9 жыл бұрын

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

  • @VladimirMozhenkov

    @VladimirMozhenkov

    9 жыл бұрын

    Валерий Шинкаренко Видео про Абстрактную Фабрику уже выложил. Сейчас через 30 минут ещё будет про Простую фабрику. Тоже посмотрите.

  • @VladimirMozhenkov

    @VladimirMozhenkov

    9 жыл бұрын

    kzread.info/dash/bejne/kWmalNysXZvLYJc.html

  • @user-im1iu5kr9s
    @user-im1iu5kr9s6 жыл бұрын

    Первый раз слушала-не поняла. Потом почитала в статье про фабричный метод с примерами и второй раз просмотрев видео-все было понятно

  • @baron2272
    @baron22727 ай бұрын

    Отлично объясняете. Расскажите об использовании фабричного метода для вывода views в MVC проектах.

  • @kerrigan_katyakatya9377
    @kerrigan_katyakatya93773 жыл бұрын

    Володя спасибо!

  • @RTPotolo4niy
    @RTPotolo4niy5 жыл бұрын

    Круто объясняешь, лайк

  • @user-ow6dr9ok6c
    @user-ow6dr9ok6c Жыл бұрын

    Огромная вам благодарность, святой человек за свет..

  • @MyFearIsMyBlue
    @MyFearIsMyBlue Жыл бұрын

    Круто. Экстравагантно, но доходчиво!

  • @Balkofag
    @Balkofag2 жыл бұрын

    Спасибо за объяснение, лекция помогла

  • @user-sh6xn3qz1p
    @user-sh6xn3qz1p Жыл бұрын

    Супер!!! Спасибо!

  • @user-vt9ie4wl4w
    @user-vt9ie4wl4w6 жыл бұрын

    Спасибо большое!

  • @koroloff88
    @koroloff886 жыл бұрын

    Самое лучшее объяснение!

  • @user-dn7nu6zq3n
    @user-dn7nu6zq3n7 жыл бұрын

    не совсем понял, с таким же успехом в такой матод может передаваться не фабрика и не стул или стол , но Мебель. Тогда мы сможем вызвать метод someMethod(мебель) с аргументами someMethod(стул) или someMethod(стол) и цель будет достигнута. Так же мебель может запросто быть интерфейсом, что еще более упростит работу, а стало быть пример не до конца объясняет, зачем нужна именно фабрика.

  • @yalauitarik

    @yalauitarik

    4 жыл бұрын

    Плюс ко всему сказано, что класс МебФаб абстрактный и не может иметь свой объект, тогда как мы засовываем его в качестве аргумента в функцию foo(МебФаб МФ)

  • @igorbaglaev2496

    @igorbaglaev2496

    4 жыл бұрын

    @@yalauitarik поскольку СтулФаб и СтолФаб наследники МебФаб, то в foo(МебФаб мф) ты можешь подставлять СтулФаб и СтолФаб

  • @HerrHoldem

    @HerrHoldem

    4 жыл бұрын

    И как это должно выглядеть на практике? Хотите в Мебель засунуть реализацию создания другой мебели? Это не самое лучшее решение.

  • @xfg9183

    @xfg9183

    3 жыл бұрын

    Потому что этот шаблон все интерпретируют как угодно, но только не так как это задумывалось в GoF. Метод создМебель должен вызываться внутри МебФаб. То есть в МебФаб описывается некий алгоритм и внутри него вызывается метод создМебель. Кароче то что он пишет в функции foo, должно быть в МебФаб. Тогда всё очевидно. Это родственный шаблон к template method. В английской вики есть прекрасный пример реализации MazeGame где показывается верная интерпретация этого шаблона, но к сожалению там же полно и разных неверных вариантов не имеющих никакого отношения к GoF.

  • @youknowme9732

    @youknowme9732

    2 жыл бұрын

    @@HerrHoldem Вики (рус. версия) Фабричный метод, примеры - "PHP5 современный вариант". Выполнена реализация фабричного метода в классе Animal (т.е. в Мебели). А дальше реализация без фабричного метода $class = "Lion"; (new $class)->voice(); Фабричный метод, кроме красивой записи нечего не дает.

  • @USER-GU4GJJURFGJKV
    @USER-GU4GJJURFGJKV5 жыл бұрын

    А я то думал, куда Паук из коррозии подался? )))

  • @denislopatin3100
    @denislopatin31008 жыл бұрын

    очень хорошо. Лично мне было бы как бонус реализация на Си примеров использования излагаемых Вами паттернов. Это не потому что не понятно через диаграммы и общие обозначение, это потому что через код лучше видно их возможное применения на практике. Спасибо за урок.

  • @Federation1323
    @Federation13234 жыл бұрын

    Меня много раз спрашивали, как меня зовут, и вот теперь я говорю во всеуслышание: меня зовут Володя! xDD Мне понравился видос!

  • @user-mz7fg8ei7k
    @user-mz7fg8ei7k4 жыл бұрын

    14:51 даа! - это интересно, даа! - это нужно! даа! - примеры на с++ :)

  • @user-kh8zm3on2b
    @user-kh8zm3on2b3 жыл бұрын

    Спасибо, круто!

  • @klev1983
    @klev19837 жыл бұрын

    Предлагаю в следующий раз создавать барную стойку и барный стул.

  • @SoBoL9500
    @SoBoL95004 жыл бұрын

    Очень полезный урок. Я как раз изучаю паттерны более подробно. Но я не могу найти плейлист с паттернами на Вашем канале. Можете предоставить ссылку?

  • @user-qe6un8mn5m
    @user-qe6un8mn5m6 жыл бұрын

    Годно, абсолютно понятно

  • @user-ql8uy2oq6b
    @user-ql8uy2oq6b5 жыл бұрын

    Ахреневаю каждый раз когда натыкаюсь на его видео xd

  • @user-hr7yc3qp8e
    @user-hr7yc3qp8e5 жыл бұрын

    Спасибо!

  • @bloodyink3423
    @bloodyink34232 жыл бұрын

    Спасибо Вам

  • @DevPlayGame
    @DevPlayGame3 жыл бұрын

    Да,реализацию посмотреть было бы круто!

  • @kudokrasnodar
    @kudokrasnodar3 жыл бұрын

    Спасибо, очень помогло

  • @sergeybabiv2573
    @sergeybabiv25738 жыл бұрын

    А если для создания различных подклассов, нужны разные входные переменные?

  • @maksimvolkov8892
    @maksimvolkov88924 жыл бұрын

    Отличное видео

  • @gsm7490
    @gsm7490 Жыл бұрын

    Моднейшие паттерны тащемта. Чад кутежа, угар!

  • @alextopsite
    @alextopsite7 жыл бұрын

    Хорошая тема

  • @user-rz2vb3vg2b
    @user-rz2vb3vg2b9 ай бұрын

    В чем разница между Фабричным методом и Dependency Injection? При инъекции зависимостей мы тоже передаем в конструктор класса A неизвестный объект B, реализующий определённый интерфейс. А потом можно исполнять в этом первом классе A сколько угодно методов A->foo1(), A->foo2(), ..., A->fooN(). Получается. что инъекция зависимостей это более сложный вариант фабричного метода?

  • @ne4to777
    @ne4to7777 жыл бұрын

    Собственно, а как потом определяется тип мебели? Неполный урок, так как не описана проблема. Она, как бы констатируется, но не обосновывается.

  • @user-xj1fv7lk1z

    @user-xj1fv7lk1z

    7 жыл бұрын

    Наследование учи. Какой объект передадут , тот и выберет компилятор

  • @user-kr2ff3xr3h

    @user-kr2ff3xr3h

    5 жыл бұрын

    @@user-xj1fv7lk1z Володя сказал, что классы стул и стол обычно прячут, поэтому ты не сможешь эти объекты передать. Вот это и осталось непонятным в видео.

  • @AlexCSharp

    @AlexCSharp

    5 жыл бұрын

    @@user-kr2ff3xr3h Ты не можешь их создать НАПРЯМУЮ, это сделает за тебя фабрика. В этом и смысл.

  • @user-rz1bn3gl7q

    @user-rz1bn3gl7q

    4 жыл бұрын

    @@AlexCSharp откуда фабрика узнает, что именно нужно создать?

  • @AlexCSharp

    @AlexCSharp

    4 жыл бұрын

    @@user-rz1bn3gl7q От запросившего, например. От настроек фабрики. От контекста зависит. Если тебе нужно создать пайплайн данных - тебе нужно будет лишь вызвать фабрику, все остальные обходимые для пайплайна объекты она создаст сама. Фабрик много, применений много. Читай "паттерны проектирования" Банды Четырёх.

  • @Dippps
    @Dippps4 жыл бұрын

    А в дочерних классах метод с приставкой override или я не о том?

  • @user-pg8ry1tm3t
    @user-pg8ry1tm3t5 ай бұрын

    шаблоны можно запрограммировать на динамическое поведение… в компайл-тайме

  • @GlebHero
    @GlebHero7 жыл бұрын

    7:55 норм затролел

  • @spyphyfarnsworth6050
    @spyphyfarnsworth60506 жыл бұрын

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

  • @johntrucena4947

    @johntrucena4947

    3 жыл бұрын

    впрингципе так и есть

  • @kolob204
    @kolob2043 жыл бұрын

    Ох уж Этот взгляд :-) Кашпировский нервно курит в стороне.

  • @lichlichi
    @lichlichi6 жыл бұрын

    Где находится сам код результата выбора пользователем, это ведтка If'ов или что то ещё?

  • @looklikethegodfather
    @looklikethegodfather9 жыл бұрын

    Хотелось бы увидеть пример на PHP

  • @Watamote336
    @Watamote3364 жыл бұрын

    никак не пойму, про что еще в этом видео сказано помимо чисто динамического полиморфизма. Но лайкос поставил)

  • @moonlight_shadow7396
    @moonlight_shadow73963 жыл бұрын

    11.37 ты обращаешься к методу абстрактного класса, у которого нет реализации?

  • @user-ft8tq4iy9z
    @user-ft8tq4iy9z4 жыл бұрын

    да, интересен пример на с++

  • @sleepysundaymorning5034
    @sleepysundaymorning50346 жыл бұрын

    Virtual - поле делающее класс абстрактным. Плюс в дочерних классах, для переопределения, надо использовать ключ. слово override

  • @hmixa

    @hmixa

    4 жыл бұрын

    virtual - это то что делает метод виртуальным а абстрактным его делает abstract ))))) как-то так. Есть разница между виртуальным и абстрактным. И не поле а метод или проперти. Поле не может быть абстрактым. Учите матчасть.

  • @johnwick8332
    @johnwick83326 жыл бұрын

    а могли бы сделать видео о реализации фабричного метода?! с++ или же с#

  • @vitaliisydorenko8226
    @vitaliisydorenko82268 жыл бұрын

    Спасибо большое за ваш труд! У меня такой вопрос: Зачем создавать классы "СтулФаб" и "СтолФаб", почему не создать соответсвующие методы ("создатьСтул" и "создатьСтол") в классе "МебФаб"??? Например как в уроке про абстракную фабрику методы "создатьОкно" и "создать Меню".

  • @VladimirMozhenkov

    @VladimirMozhenkov

    8 жыл бұрын

    +Vitalii Sydorenko Это зависит от того, как вы собираетесь создавать эти объекты. Иногда один участок кода будет создавать Столы, а другой Столья, и если они работают совершенно поразному, то почему они должны использовать ту-же самую фабрику? То есть в этом случае здесь вопрос именно уровня абстракции.

  • @vitaliisydorenko8226

    @vitaliisydorenko8226

    8 жыл бұрын

    Я уже всё понял. Спасибо!

  • @KENISEG
    @KENISEG Жыл бұрын

    ээээх видосик не дожат до конца, я ждал развязки с той функцией\классом который "что бы не дублировать" вмял в себя методы фабрики. интересно было увидеть как манипулировать это функцией (аргументами?) типо foo(стулья) ? а как в коде указать что функция через фабрику должна стулья создавать?

  • @KENISEG

    @KENISEG

    Жыл бұрын

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

  • @user-xq2ng2cu3d
    @user-xq2ng2cu3d6 жыл бұрын

    Извините, вы сказали "Но можно создать шаблон" я не совсем понял что за шаблон?

  • @expurple

    @expurple

    3 жыл бұрын

    Вы уже скорее всего разобрались, но отвечу для остальных: имеется в виду template/generic (в разных языках по-разному называется)

  • @user-ni3ui6jy5y
    @user-ni3ui6jy5y3 жыл бұрын

    Христос воскрес

  • @dsalodki
    @dsalodki4 жыл бұрын

    создай плейлист по паттернам хотя бы, а то не нашёл больше ничего

  • @hmixa
    @hmixa4 жыл бұрын

    Надуманный пример, параллельное наследование вредно само по себе. Обычный статический метод возвращающий базовый класс и динамически решает instants какого типа создавать, например читая конфигурационые файлы. Ну или все-таки создать класс фабрику но не наследовать её, класс нужен просто для того если принятие решения по созданию Instants-а более сложное и не помещается в один метод. А так как товарищ предлагает это убивает всякую динамику, какую фабрику передали то и будет всегда создаваться. Смысл?

  • @user-jd4rl7im6d
    @user-jd4rl7im6d Жыл бұрын

    6:20. Не очень понятно, почему в фабричный метод (foo в видео) нельзя передать непосредственно класс объекта, чтобы он создал и вернул объект этого класса. Зачем передавать еще один класс, который внутри будет делать то же самое? То есть на примере в видео передать в функцию foo не МФ Стульев, а Стул? Я пишу на Пайтоне и у нас классы это тоже объекты, и их можно передавать в функции. Возможно, что на других языках такой возможности нет, поэтому необходимо создавать объект фабрики?

  • @kvantstudio

    @kvantstudio

    Жыл бұрын

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

  • @user-jd4rl7im6d

    @user-jd4rl7im6d

    Жыл бұрын

    @@kvantstudio это то как раз понятно) допустим по логике программы пользователь должен выбрать создать стул или стол - на этапе компиляции мы не знаем выбор пользователя. И таких вариантов множество.

  • @alexxxyzzz

    @alexxxyzzz

    Жыл бұрын

    @@kvantstudio Сила полиморфизма в том, что вы можете менять поведение объектов прямо в рантайме. Кому интересно можете загуглить "Динамическая диспетчеризация методов".

  • @victorprohorov6201
    @victorprohorov62012 жыл бұрын

    А как мы знаем какой класс создавать? В функции будут какие то условия?

  • @VladimirMozhenkov

    @VladimirMozhenkov

    2 жыл бұрын

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

  • @victorprohorov6201

    @victorprohorov6201

    2 жыл бұрын

    @@VladimirMozhenkov Теперь понятно, огромное спасибо!!!

  • @dzen1234
    @dzen12346 жыл бұрын

    И где здесь метод, который конкретно фабричный ? Это ф-я, которая принимает параметром фабрики, или это методы фабрик ? Хорошо бы акцентировать. Мне этот ролик понравился (лайкнул), но я хочу чтобы мне ткнули пальцем в то, что здесь называется фабричным методом.

  • @_Agent_Smith
    @_Agent_Smith5 жыл бұрын

    Верите ли вы в джаву?

  • @itsymphony867
    @itsymphony8673 жыл бұрын

    Купи себе большую дошку наконец то

  • @Blade_Ruiner
    @Blade_Ruiner2 жыл бұрын

    Хмм. Мы задаем ему создать подкласс, но не знаем какой он создаст. Разве программирование не точная вещь, и не задается разработчиком всё всё всё? Т.е мы не знаем какой подкласс он создаст? Он разумный и сам выбирает? Я как новичок не понимаю просто. Там ни рандома, ни "шанса по процентам на то и на то". Я так понимаю, если нам надо создать подкласс. он не создаст его, если мы не укажем какой. Я пока понял, что если у кофемашины закинуть монетку и нажать заказать кофе, то он может выдать люой. а не тот, который мы выюерем нажав на кнопку.

  • @MrAirrussia
    @MrAirrussia8 жыл бұрын

    Простите, а это случайно не полиморфизмом называется?

  • @VladimirMozhenkov

    @VladimirMozhenkov

    8 жыл бұрын

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

  • @arthurgoncharuk8193
    @arthurgoncharuk81939 жыл бұрын

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

  • @SavageStyle77
    @SavageStyle776 жыл бұрын

    Боже, Володя, ты похож на Иисуса - подстригись, бороду чуть короче можно и будешь круто выглядеть

  • @sleepysundaymorning5034
    @sleepysundaymorning50346 жыл бұрын

    Очень сильно напоминает полиморфизм, та же схема

  • @hmixa

    @hmixa

    4 жыл бұрын

    Конечно, но это пример типичного использования полиморфизма но не единственное!

  • @TheDron84
    @TheDron846 жыл бұрын

    Чёт не зашло вообще.. ФМ нужен тогда, когда нам надо создать объект дочернего класса, но какой объект будет создаваться - мы не знаем. А зачем тогда создавать объект, который не известен на выходе? Что потом с ним делать? А если создаться объект не тот, что надо? Или мы не ожидали ничего конкретного на выходе, а просто - одно из? Ни вкисаю в смысл. Пойду смотреть/читать дальше эту тему.

  • @mishanjad2383

    @mishanjad2383

    6 жыл бұрын

    И что? Разобрался? Я тоже не понял зачем создавать объект непонятный на ходе... Кто решает какой объект нужен. Это же не квантовый компьютер...

  • @rainbowcake760

    @rainbowcake760

    6 жыл бұрын

    Как это "создастся не тот" =) если ты передаешь объект конкретной фабрики в метод =) просто он должен реализовывать интерфейс МФ. Просто это сделано для того чтобы не перекидывать в методы гору разных объектов, вместо этого просто кинуть туда 1 фабрику которая даст тебе любой из этих объектов еще и динамически.

  • @sackeja

    @sackeja

    5 жыл бұрын

    До момента выполнения программы мы н е знаем. какой вид объекта нам по­ надобится создать ( B l oggsAppt E ncode r или MegaApp t Encode r } . • Мы должны иметь возможность достаточно просто добавлять новые типы объектов (например. следующее требование бизнеса - поддержка протокола SyncML}. • Каждый тип продукта связан с контекстом. который требует других специ­ ализированных операций ( g e t H e a d e r T e x t ( ) . ge t Fo o t e r T e x t ( ) ) . Кроме того. нужно отметить, что мы используем условные операторы. и мы уже видели, что их можно заменить полиморфизмом. Шаблон Factory Method позволяет использовать наследование и полиморфизм, чтобы инкапсулировать создание кон­ кретных продуктов. Другими словами, для каждого протокола создается свой под­ класс типа CommsMa nage r , в котором реализован свой метод g e t App t Encode r ( )

  • @kostyan196

    @kostyan196

    5 жыл бұрын

    Ну , для примера, пользователь выбирает фильтр для ретуширования в "Фотошопе" . Следовательно он его будет выбирать в рантайме и создаваться он будет в рантайме.

  • @asapdexter6410
    @asapdexter64103 жыл бұрын

    полиморфизм

  • @Ruslan_Ishmuratov
    @Ruslan_Ishmuratov2 жыл бұрын

    Как скрипит доска 😬

  • @free115
    @free1157 жыл бұрын

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

  • @pr0n1x2
    @pr0n1x28 жыл бұрын

    Совершенно не понятно

  • @dmitriyshevchenko8188

    @dmitriyshevchenko8188

    5 жыл бұрын

    там в начале он говорил, что изучите батенька наследование)

  • @skynowa2626
    @skynowa26267 жыл бұрын

    1С программирование

  • @zakharchuksergey4868
    @zakharchuksergey48687 жыл бұрын

    Непонятно! Увы!

  • @bubblesort6368

    @bubblesort6368

    6 жыл бұрын

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

  • @RedasGamesCom
    @RedasGamesCom6 жыл бұрын

    Очень не понятно обьясняешь, только запутал.

  • @skynowa2626
    @skynowa26267 жыл бұрын

    фабрика::купитьДоску();

  • @SkySystems
    @SkySystems4 жыл бұрын

    Непонятно

  • @yurgasparyan548
    @yurgasparyan5486 жыл бұрын

    До свидания Володя

  • @denis_ken
    @denis_ken6 жыл бұрын

    Так нифига и не понял... ((

  • @babai5655
    @babai56552 жыл бұрын

    Может я тупой но абсолютно ничего не понял.

  • @AtlantiDoom
    @AtlantiDoom4 жыл бұрын

    дайте ему 10 р на церковь

  • @aargh.3573
    @aargh.35734 жыл бұрын

    Привет, пострижися

  • @skynowa2626
    @skynowa26267 жыл бұрын

    у тебя талант почти обьяснять

  • @skynowa2626
    @skynowa26267 жыл бұрын

    много лишнено текста, почти Володя

Келесі