фабрика предназначена по большей части для инициализации экземпляров классов с нужными параметрами, например listener-а который при наступлении нужного события отвечает за отправку сообщений клиентам, и при его инициализации нужно его снабдить сервисом отправки сообщений, сервисом логирования и прочими такими фичами, без которых он просто не поедет примерно так в общем)
@@agnar878 нет, не один в один: фабрика нужна для создания класса нужным образом, с нужными параметрами конфигами и прочим, а стратегия используется для возможности выбора, какой именно алгоритм при каких условиях нужно выбрать вот более понятный пример: фабрика по производству автомобиля (CarFactory которая создаёт Car): автомобилю нужны колёса (список MichelinWheel[] 4 шт.), движок (CarEngine), двери (список Door[] 4 шт.) т.е. при вызове фабрики (carFactory->create()) в классе Car будут такие агрегаты, как Wheel, Engine, Door а теперь пусть езжает наше авто; у нас есть два разных способа езды: по трассе (класс HighwayRoadDrive) можем ехать как болид формулы-1 под 150 по русской дороге (класс BullshitRoadDrive) можем ехать максимум 40, проверяя наш болид на виброустойчивость и материться в окно в данном случае это не фабрика, поскольку мы всего-лишь *выбираем* алгоритм способа езды из двух представленных в зависимости от того, куда наш код ваще занесло, ничем этот алгоритм не насыщая дополнительно и не конфигурируя его
У вас отличные видео уже не для новичков. а такого очень мало в русскоязычном сегменте.
спасибо))
Спасибо))
почему-то напоминает Invertion of Control
так а где условие какой процессинг должен подставлятся ?
А можно интерфейс передавать как параметр в метод? Или тогда фабрика получится?
не совсем понятно что имеется ввиду, можете пример привести ?
то есть в данном случае это получаетсяи strategy и dependency injection?
c помощью этой двоицы можно во много раз улучшить качество кода ))
еще можно добавить использование интерфейсов для связи компонентов системы и тогда можно будет внедрять любой структурный паттерн
Подскажите в чем отличие "стратегии" от "фабрики"? Я бы сказал, что в примере показана фабрика.
фабрика предназначена по большей части для инициализации экземпляров классов с нужными параметрами,
например listener-а который при наступлении нужного события отвечает за отправку сообщений клиентам, и при его инициализации нужно его снабдить сервисом отправки сообщений, сервисом логирования и прочими такими фичами, без которых он просто не поедет
примерно так в общем)
@@igorkharchenko если честно , не понял разницы с фабрикой. Один в один же. Для тупых) можете ещё раз пояснить. Плиз
@@agnar878 нет, не один в один: фабрика нужна для создания класса нужным образом, с нужными параметрами конфигами и прочим, а стратегия используется для возможности выбора, какой именно алгоритм при каких условиях нужно выбрать
вот более понятный пример: фабрика по производству автомобиля (CarFactory которая создаёт Car):
автомобилю нужны колёса (список MichelinWheel[] 4 шт.),
движок (CarEngine),
двери (список Door[] 4 шт.)
т.е. при вызове фабрики (carFactory->create()) в классе Car будут такие агрегаты, как Wheel, Engine, Door
а теперь пусть езжает наше авто; у нас есть два разных способа езды:
по трассе (класс HighwayRoadDrive) можем ехать как болид формулы-1 под 150
по русской дороге (класс BullshitRoadDrive) можем ехать максимум 40, проверяя наш болид на виброустойчивость и материться в окно
в данном случае это не фабрика, поскольку мы всего-лишь *выбираем* алгоритм способа езды из двух представленных в зависимости от того, куда наш код ваще занесло, ничем этот алгоритм не насыщая дополнительно и не конфигурируя его
@@igorkharchenko спасибо за ответ. У вас очень годные видео.
Я не так выразился. С простой фабрикой все понятно. Я имел ввиду абстрактную фабрику