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

Builder – это паттерн проектирования, который используется для создания сложных объектов. Он позволяет создавать объекты с разными характеристиками, не заставляя пользователя заботиться о том, как эти характеристики должны быть установлены.

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

Для реализации паттерна Builder необходимо создать класс Builder, который будет отвечать за процесс создания объекта, а также класс Director, который будет использовать Builder для конструирования объекта.

Пример кода на языке С:


#include 
// класс Builder
typedef struct {
    int id;
    char name[50];
    char address[100];
    char phone[20];
} PersonBuilder;
// методы для установки характеристик объекта
void setPersonId(PersonBuilder* builder, int id) {
    builder->id = id;
}
void setPersonName(PersonBuilder* builder, char* name) {
    strcpy(builder->name, name);
}
void setPersonAddress(PersonBuilder* builder, char* address) {
    strcpy(builder->address, address);
}
void setPersonPhone(PersonBuilder* builder, char* phone) {
    strcpy(builder->phone, phone);
}
// класс Director
typedef struct {
    PersonBuilder builder;
} PersonDirector;
// метод для создания объекта
PersonBuilder createPerson(PersonDirector* director, int id, char* name, char* address, char* phone) {
    setPersonId(&(director->builder), id);
    setPersonName(&(director->builder), name);
    setPersonAddress(&(director->builder), address);
    setPersonPhone(&(director->builder), phone);
    return director->builder;
}
int main() {
    // создание объекта
    PersonBuilder person = createPerson(&(PersonDirector){}, 123, "John Smith", "123 Main Street", "(555) 555-5555");
    // вывод информации о объекте
    printf("Person Id: %d\n", person.id);
    printf("Person Name: %s\n", person.name);
    printf("Person Address: %s\n", person.address);
    printf("Person Phone: %s\n", person.phone);
    return 0;
}

В данном примере мы создали класс Builder - PersonBuilder, который содержит характеристики объекта (id, name, address, phone), а также методы для их установки (setPersonId, setPersonName, setPersonAddress, setPersonPhone).

Затем мы создали класс Director – PersonDirector, который использует PersonBuilder для создания объекта. Метод createPerson принимает параметры объекта и устанавливает их с помощью методов класса PersonBuilder.

В методе main мы создали объект PersonBuilder с помощью класса PersonDirector и его метода createPerson, установили его характеристики и вывели информацию о нем на экран.

Таким образом, паттерн Builder позволяет создавать сложные объекты с помощью разделения процесса создания на отдельные этапы и предоставления набора методов для установки характеристик объекта.

Похожие вопросы на: "builder c "

JavaScript QuerySelector: Начиная с основ
Mastering Text Transform: The Key to Stunning Typography
SQLite Online - Manage Your Databases From Anywhere!
UTC GMT: Everything You Need to Know
Creating the Perfect Address Line: Tips and Tricks
Онлайн Ассемблер – Бесплатный Редактор Ассемблера Без Скачивания
JS массив объектов: управление данными, фильтрация и сортировка
<h1>V Get T - ваш лучший выбор для доставки товаров
Скачать VC Code: бесплатный редактор кода
<h1>Функция set в Python