Хорошо, ребята, добро пожаловать в новую статью о шаблоне проектирования Builder.

Шаблон построителя следует использовать только для создания сложных объектов, например, когда создание объекта необходимо отделить от его сборки, например деревьев.

Для нашего рецепта необходимы следующие ингредиенты:

  1. Добавление интерфейса конструктора
    Этот абстрактный базовый класс определяет все шаги, которые необходимо предпринять для правильного создания продукта. В нашем примере интерфейс IBuildMobile,
  2. Создание конкретного класса строителя
    Эти классы содержат функции для создания особенно сложного продукта. В нашем примере это класс Apple и класс OnePlus,
  3. Реализация директора
    Класс-директор управляет алгоритмом создания конечного продукта. Объект-директор вводит продукт через конструктор. Затем директор вызывает методы конкретного строителя в правильном порядке для создания продукта. По завершении процесса для возврата продукта можно использовать метод GetProduct объекта построителя. В нашем примере класс Mobile & method, который возвращает мобильный телефон, в нашем примере называется GetMobile ().

Шаблон построителя направлен на отделение построения сложного объекта от его представления, чтобы один и тот же процесс построения мог создавать разные представления.

Теперь вы, наверное, почесываете затылок, задаваясь вопросом, что, черт возьми, это было?

Вот то, что я пытался передать ... Шаблон построителя удаляет весь код построения или инициализации из класса объекта и абстрагирует его до интерфейса.

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

В ПОРЯДКЕ! Хватит разговоров! Давайте посмотрим, как будет выглядеть UML на примере, который мы собираемся разработать.

Давайте возьмем две реализации для мобильных телефонов: OnePlus и Apple, и пусть клиент будет беспокоиться только о вызове этих классов, а не о том, что есть в мобильном телефоне и как он должен это получить.

Теперь представьте, что вам нужно создать объект класса Mobile. У вас должны быть технические характеристики мобильного устройства, а также тип мобильного устройства (OnePlus или Apple) и бла-бла-бла.

Почему клиенту нужно обо всем этом беспокоиться?

Начнем с интерфейса IMobileRequirements. Он определяет все требования, которые должен иметь ваш мобильный телефон.

Теперь это конкретная реализация: класс MobileRequirements, который устанавливает все основные требования для мобильных устройств.

Теперь наш интерфейс конструктора: IBuildMobile

Конкретное представление IBuildMobile. В основном наши конкретные классы строителей.

первый бетонный класс OnePlus

Бетон второго класса Apple

Теперь наш финальный директор: класс Mobile.

Последним, как обычно, но не в последнюю очередь, является программа caller: class.

Посмотрим, что получится, когда клиенту понадобится телефон Apple:

и при выводе, когда клиенту нужен телефон Onepplus: Примечание: просто раскомментируйте приведенный выше код и запустите приложение.

Идеально и безупречно!

Резюме

В этой статье мы узнали

  1. Где шаблон строителя вписывается в более крупную картину шаблона дизайна.
  2. Как создать класс объекта и абстрагировать его конструктор в интерфейс.
  3. Как создавать и настраивать представления конкретных строителей.
  4. Роль класса-директора и управление общим процессом сборки.

Я надеюсь, что вы отошли от этого, по-настоящему поняв шаблон строителя и то, как его можно применить к вашим личным проектам в будущем.

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

Загрузите код отсюда: https://github.com/RikamCZ/Builder-Design-Pattern

Свяжитесь со мной:

https://github.com/RikamCZ

https://www.linkedin.com/in/rikampalkar/

https://www.c-sharpcorner.com/members/rikam-palkar

https://twitter.com/rikam_cz