Tanım

Birçok parametrenin ayarlanması gereken bir sınıfı oluşturmak için karmaşık constructorlar kullanmak yerine daha esnek yardımcı bir sınıf kullanmak.

C++ implementasyonu

#include <iostream>
#include <string>

using namespace std;

struct Person{
	string name{};
	string surname{};
	int age{};
	string job{};

	void print() {
		cout <<
			"---Person---" << endl<<
			"name:    " << name << endl <<
			"surname: " << surname << endl <<
			"age:     " << age << endl <<
			"job:     " << job << endl;
	}
};

struct PersonBuilder {
private:
	Person person;
public:
	PersonBuilder() { person = Person(); }

	Person& build() {
		return person;
	}

	PersonBuilder& name(string str) {
		person.name = str;
		return *this;
	}
	PersonBuilder& surname(string str) {
		person.surname = str;
		return *this;
	}
	PersonBuilder& job(string str) {
		person.job = str;
		return *this;
	}
	PersonBuilder& age(int i) {
		person.age = i;
		return *this;
	}
};


int main() {
	Person p1 = PersonBuilder().age(24).name("Muhammet Esat").surname("BUYUKBULUT").job("Pro student").build();
	Person p2 = PersonBuilder().name("Michelin").job("Lastik").build();

	p1.print();
	p2.print();
}
---Person---
name:    Muhammet Esat
surname: BUYUKBULUT
age:     24
job:     Pro student
---Person---
name:    Michelin
surname:
age:     0
job:     Lastik

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *