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 "

Strtok: работа со строками в языке С
Привязка контекста в JavaScript с помощью метода bind()
Создание графических интерфейсов JavaFX с помощью Scene Builder
Итераторы C++: как использовать и зачем нужны
Перенос строки в HTML: как сделать перенос текста на новую строку?
JavaScript QuerySelectorAll: поиск элементов на странице с помощью CSS-селекторов
Шестнадцатеричные числа в Python - учимся работать с Hex Python
Adblock Test: Check Your AdBlocker for Maximum Privacy and Security
Бэкслэш в программировании: для чего он нужен и как им пользоваться
Encapsulation: Protecting Your Code and Data