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 "

Throttle: все, что нужно знать об ограничении скорости двигателя
Extend Python: Tips, Tricks, and Tools for Advancing Your Python Skills
Использование метода toString() в JavaScript для преобразования объектов в строки
Please Select a Valid Python Interpreter
Django Render: Create Dynamic Web Pages with Ease
Как пользоваться PyInstaller: инструкция для начинающих
Too Many Attempts - Превышено количество попыток
<h1>Java List Sort: Efficient Sorting Algorithms for Lists in Java
Debian Xfce - Официальный сайт операционной системы Debian с графической оболочкой Xfce
<h1>JS округление до целого