Factory Method - Design patterns C#

Sdílet
Vložit
  • čas přidán 21. 08. 2024
  • The factory method is a generating design pattern that allows you to carry its instance creation into a separate class. That is, the base class defines the creation interface, and the implementation of the creation process is performed by the heirs.
    We will look at the idea of ​​this design pattern in detail and implement it in the C # programming language. And also consider the advantages and disadvantages of the design pattern factory method.
    Subscribe to my social networks, there are many interesting and useful for developers:
    Vkontakte: codeblog
    Telegram: ttttt.me/codeblog
    Support the development of the rope:
    Donat: www.donational...
    Patreon: / codeblog
    The source code of the project is available on GitHub github.com/shw...
    Design patterns describe typical ways to solve common software architecture problems. Design patterns are not a specific code, but a general concept for solving a particular problem, which will still need to be tailored to the needs of your program. The generating patterns solve the problem of creating new class instances.
    We implement the factory C # method (factory method c #) or, as it is, sometimes also called the virtual constructor using the example of several popular instant messengers with the ability to send messages of various types. Such C # design patterns (design pattern c #) allow you to save the class from being tied to specific products. The factory method pattern makes it easy to add new products to the program. Design Patterns C # implements the principle of openness / closeness. But it is important to remember that the factory method pattern can lead to the creation of a large number of parallel class hierarchies. C # templates (C # templates) should be used with caution and not implemented in places where they are not needed.
    You can also read about this pattern on my website at shwanoff.ru/fa...
    By the way, my name is Shvanov Vadim, and I am a professional .NET developer with over 8 years experience and the author of this channel CODE BLOG. I talk about IT technology and lead this course on the C # language from scratch. Within its framework, we will consider both the basic syntax of the C Sharp language, and its practical application and special technologies, such as ASP .NET, Core, MVC, Unity, WCF, WPF, data structures and algorithms, design patterns, computer science, software and much more. For me, it is important not only to show the practical application of the C # language, but also to explain the basic idea and basic concepts of Computer Science. Visual studio c # and visual c # projects are used as the main development tool.
    Training course C # design patterns (C # design patterns):
    • Паттерны проектировани...
    Detailed course on the C # programming language:
    • Преимущества и недоста...
    Detailed course on data structures in the C # programming language:
    • Связный список (linked...
    Detailed course on sorting algorithms in C #:
    • Сортировка пузырьком (...
    Talk about programming, motivating, and answering IT questions:
    • Практика программирова...
    programming #csharp # patterns #codeblog #ityoutubersru

Komentáře • 53

  • @CODEBLOG
    @CODEBLOG  Před 5 lety +7

    Фабричный метод (Factory Method) - это порождающий паттерн проектирования, который задает интерфейс создания экземпляра объекта, но при этом позволяет наследникам решать экземпляр какого типа создавать. В базовом классе создателе мы определяем метод создания нового экземпляра базового класса продукта. И в дальнейшем реализуем этот метод для конкретных создателей и продуктов. Мы рассмотрим идею и пример применения фабричного метода, а также реализуем его на языке программирования C#.
    Исходный код проекта доступен по ссылке github.com/shwanoff/FactoryMethodCodeblog
    Подписывайтесь на канал, включайте колокольчик и поддержите развитие канала своим лайком. Это действительно важно для меня. А также не стесняйтесь задавать вопросы в комментариях. Приведи в комментариях пример, где бы ты применил данные паттерны проектирования.
    Подписывайтесь на мои социальные сети, там много интересного и полезного для разработчиков:
    ВКонтакте: vk.com/codeblog
    Телеграм: ttttt.me/codeblog
    А для общения заходите в наши чаты:
    Общий чат в телеграм: ttttt.me/codeblog_chat
    Чат по C# в телеграм: ttttt.me/codeblog_csharp
    Чат в дискорд: discord.gg/EV2WdyP
    Получать уведомления о новых видео в личные сообщения ВКонтакте: bit.ly/2LycbVs

  • @Amisare_1337
    @Amisare_1337 Před 4 lety +8

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

    • @CODEBLOG
      @CODEBLOG  Před 4 lety

      Очень рад помочь :) лучше поздно, чем никогда

  • @vladisslavss
    @vladisslavss Před rokem +1

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

  • @mikhailkharev
    @mikhailkharev Před 4 lety +2

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

  • @magashkinson
    @magashkinson Před 5 lety +7

    Спасибо за твой труд. Отличное видео

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Всегда пожалуйста )

  • @romanbush5164
    @romanbush5164 Před 2 lety +2

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

  • @sashasonik0
    @sashasonik0 Před rokem

    материал очень полезный рекомендую

  • @sashasonik0
    @sashasonik0 Před rokem

    крутое делаешь вообще

  • @user-bt9tv9dw1e
    @user-bt9tv9dw1e Před 5 lety +1

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Спасибо, рад, что понравилось )

  • @user-wp6pd2fx8g
    @user-wp6pd2fx8g Před 2 lety +1

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

  • @user-cz6mp5vr6z
    @user-cz6mp5vr6z Před 4 lety +1

    самый крутой пример который я нашел

  • @user-ut8og2uj1o
    @user-ut8og2uj1o Před 4 lety +1

    Спасибо мужик.

  • @talisman1104
    @talisman1104 Před 11 měsíci

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

  • @juliusmalkov9620
    @juliusmalkov9620 Před 5 lety

    Прикольный формат)

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Рад, что понравилось )

  • @karabasbarabas2000
    @karabasbarabas2000 Před 5 lety +2

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

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

  • @modestb4144
    @modestb4144 Před 3 lety +1

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

  • @RussianSkiersEdge
    @RussianSkiersEdge Před 3 lety +1

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

  • @glukis7970
    @glukis7970 Před 5 lety +1

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      В процессе, постараюсь выпустить как можно скорее

  • @stan5214
    @stan5214 Před 5 lety +1

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      На самом деле не совсем. Это просто одна из возможностей расширения логики, без необходимости изменения основного класса. Есть интерфейс, который определяет соглашение: какие методы и свойства должны присутствовать у класса, а детали реализации базовому классу не интересны. деталями как раз занимаются вспомогательные классы, реализующие интерфейс

  • @user-cz6mp5vr6z
    @user-cz6mp5vr6z Před 4 lety +3

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

    • @user-yd7qs2le1e
      @user-yd7qs2le1e Před 3 lety

      В твоей голове разве что фабрики имеют один метод

    • @user-cz6mp5vr6z
      @user-cz6mp5vr6z Před 3 lety

      @@user-yd7qs2le1e она, синьоры с 10+ годами опыта подъехали

    • @user-yd7qs2le1e
      @user-yd7qs2le1e Před 3 lety

      @@user-cz6mp5vr6z да любому, у кого iq больше, чем у табуретки, очевидна твоя чушь про один метод в фабрике.

    • @user-cz6mp5vr6z
      @user-cz6mp5vr6z Před 3 lety

      @@user-yd7qs2le1e да да, конечно
      Вы, конечно же, правы

  • @6537537
    @6537537 Před 4 lety +4

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

    • @ElChampi0
      @ElChampi0 Před 3 lety +2

      Хотя бы понятно как использовать, а то все рассказывают на примере яблок или табуретов. А после просмотра этого видео стало понятно не только зачем это надо, но и как это надо делать

    • @nmg_prm
      @nmg_prm Před 3 lety +1

      @@ElChampi0 100%

  • @borsuk7667
    @borsuk7667 Před 5 lety

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Завтра будет видосик, где будем много интересных каналов )

    • @t3m8ch79
      @t3m8ch79 Před 4 lety +2

      Два последних не особо нравятся, Соер и Борода годные

  • @user-co3sn2sg8n
    @user-co3sn2sg8n Před rokem +1

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

  • @mr_smind
    @mr_smind Před 2 lety +1

    зачем музыка вместо объяснения?

  • @unknown6535
    @unknown6535 Před 3 lety

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

  • @egorpilat2777
    @egorpilat2777 Před 5 lety +2

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Я в следующем году планирую по Python записывать

    • @user-iz8qz5fg4e
      @user-iz8qz5fg4e Před 5 lety

      На степике есть два отличных курса, совсем с нуля:
      - Программирование на Python Курс посвящен базовым понятиям и элементам языка программирования Python (операторы, числовые и строковые переменные, списки, условия и циклы). Курс является вводным и наиболее подойдет слушателям, не имеющим опыта написания программ ни на одном из языков программирования.
      stepik.org/course/Программирование-на-Python-67/
      -и не совсем
      Python: основы и применение Курс посвящен базовым принципам языка Python и программирования в целом. Он хорошо подойдет тем, кто уже может писать простейшие программы на Python или тем, кто до этого программировал на других языках.
      stepik.org/course/Python-основы-и-применение-512/
      Мне оба очень понравились

  • @user-rv8oz6sj2u
    @user-rv8oz6sj2u Před 5 lety +1

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

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      С возвращением )) завтра новое видео - уже бритый там)

    • @user-rv8oz6sj2u
      @user-rv8oz6sj2u Před 5 lety

      @@CODEBLOG До завтра)

  • @unimaster3828
    @unimaster3828 Před 5 lety

    Чем отличается паттерн фабричный метод от полиморфизма подтипов?

    • @CODEBLOG
      @CODEBLOG  Před 5 lety +1

      Фабричный метод это одна из разновидностей полиморфизма подтипов

  • @artak9439
    @artak9439 Před 3 lety

    В ускоренном режиме невозможно посмотреть что делаете

  • @user-zt6zy7kq7y
    @user-zt6zy7kq7y Před 4 měsíci

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

  • @vladimir3074
    @vladimir3074 Před 5 lety

    Что за музыка на фоне?

    • @vladimir3074
      @vladimir3074 Před 5 lety

      15:17

    • @CODEBLOG
      @CODEBLOG  Před 5 lety

      Название я к сожалению точно не знаю, это из библиотеки ютуба. ее можно найти в моей группе в контакте (vk.com/audios-159224823) в аудиозаписях прямо первая "Без названия"