Фабричный метод (Factory Method) - Паттерны проектирования C#

preview_player
Показать описание
Фабричный метод (Factory Method) — это порождающий паттерн проектирования, который позволяет вынести в отдельный класс создание его экземпляра. То есть, базовый класс определяет интерфейс создания, а реализацию процесса создания выполняют наследники.

Мы подробно рассмотрим идею этого шаблона проектирования и реализуем его на языке программирования C#. А также рассмотрим преимущества и недостатки паттерна проектирования фабричный метод.

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

Поддержать развитие каната:

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

Мы реализуем фабричный метод C# (factory method c#) или как его еще иногда называют виртуальный конструктор на примере работы нескольких популярных мессенджеров с возможностью отправки сообщений различного типа. Такие паттерны проектирования C# (design pattern c#) позволяют избавить класс от привязки к конкретным продуктам. Паттерн фабричный метод упрощает добавление новых продуктов в программу. Шаблоны проектирования C# реализует принцип открытости/закрытости. Но важно помнить, что фабричный метод паттерн (factory method pattern), который может привести к созданию большого числа параллельных иерархий классов. Паттерны C# (шаблоны C#) нужно использовать с осторожностью и не внедрять их там, где это не нужно.

Кстати, меня зовут Шванов Вадим, и я профессиональный .NET разработчик с опытом более 8 лет и автор этого канала CODE BLOG. Я рассказываю про IT технологии и веду этот курс по языку C# с нуля. В его рамках мы рассмотрим как базовый синтаксис языка C Sharp, так и его практическое применение и специальные технологии, такие как ASP .NET, Core, MVC, Unity, WCF, WPF, структуры данных и алгоритмы, паттерны проектирования, информатика, программное обеспечение и многое другое. Для меня важно не только показать практическое применение языка C#, но и объяснить основную идею и базовые понятия Computer Science. В качестве основного инструмента разработки используется visual studio c# и проекты на visual c#.

Обучающий курс паттерны проектирования C# (шаблоны проектирования C#):

Подробный курс по языку программирования C#:

Подробный курс по структурам данных на языке программирования C#:

Подробный курс по алгоритмам сортировки на языке C#:

Разговоры о программировании, мотивации, и ответы на IT вопросы:

#программирование #csharp #паттерны #codeblog #ityoutubersru
Рекомендации по теме
Комментарии
Автор

Фабричный метод (Factory Method) – это порождающий паттерн проектирования, который задает интерфейс создания экземпляра объекта, но при этом позволяет наследникам решать экземпляр какого типа создавать. В базовом классе создателе мы определяем метод создания нового экземпляра базового класса продукта. И в дальнейшем реализуем этот метод для конкретных создателей и продуктов. Мы рассмотрим идею и пример применения фабричного метода, а также реализуем его на языке программирования C#.


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

А для общения заходите в наши чаты:

CODEBLOG
Автор

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

Amisare_
Автор

Лукас и коммент в поддержку канала!
Спасибо вам за труд!

vladisslavss
Автор

Спасибо большое! На платных курсах меньше информации получил, чем здесь!

mikhailkharev
Автор

Я считаю можно объявить нежно 🤣🤣👍🤫 спасибо

romanbush
Автор

Отличное видео.
Быстро, красиво, чисто, по правилам.

РоманМаксимов-цс
Автор

Спасибо за урок! очень круто. Но не хватило пояснений:) Буду пересматривать. P.S почему так мало лайков и комментариев(

Сергей-гон
Автор

Главное сам по-русски печатает мессенджер, а по-английски называет его messanger

talisman
Автор

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

modestb
Автор

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

RussianSkiersEdge
Автор

Открыл ролик, он самый длинный. Думаю что там можно 20 минут объяснять. А там мюзикл на 80% времени

Автор

Спасибо за видео! Вот только непонятно мне - а зачем нужен этот паттерн? Мы создали несколько отдельных классов которые по отдельности реализовали функционал каждый свой в пределах "пишу какое то сообщение". Ну ок, а если б сделали без релизации интерфейсов что бы поменялось? Как применять эти классы теперь, в чем фишка?)

karabasbarabas
Автор

АйТиБорода, Соер, Виндертон и Хаудихо :)
Прям мини подсказка что можно посмотреть

borsuk
Автор

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

stan
Автор

Спасибо за урок, а нейронка будет еще? Вроде обещали довести её до рабочего вида.

glukis
Автор

Вот у меня вопрос
обычно вить фабрики имеют один метод, а здесь прям полноценные классы. Почему именно так?

РоманОболонский-цн
Автор

А что делать, если телеграмм мессанджеру нужна поддержка той же функциональности что и у Инстаграм мессенджер? (то есть это отправка изображений)

unknown
Автор

Вместо музыки лучше комментировать то что создаёте.

GlebStepanov-ui
Автор

Долго тебя не смотрел. Побрейся, братан.

ПетрГубарев-шс
Автор

А есть такой же препод, но по питону? Как обычно, боги не там, где ты.

egorpilat