Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
April 29, 2022 01:01 pm GMT

Menggunakan Builder Class Untuk Membuat Object

Hai teman-teman

Kali ini saya akan membagikan tentang penggunaan builder class. Pada umumnya, ketika kita akan membuat object, maka kita langsung melakukan instansiasi dari class referensinya seperti contoh berikut:

class Person {    constructor (firstName, phone, email) {        this.firstName = firstName;        this.phone = phone;        this.email = email;    }}const andi = new Person('Andi', '081234567890', '[email protected]');const budi = new Person('Budi', '081234567891', '[email protected]');const carli = new Person('Carli', '081234567892', '[email protected]');

Cara di atas sangat umum digunakan, akan tetapi jika kita perlu mengubah susunan constructor dari class Person akan sedikit merepotkan. Misalkan saya ingin menambahkan variabel lastName setelah variabel firstName, akibatnya kita juga harus mengubah kode saat instansiasi objek dari class Person satu per satu. Apabila kita tidak merubahnya, maka variabel lastName akan terisi oleh nomor hp dan variabel nomor hp akan terisi dengan email. Dikarenakan alasan tersebut, kita perlu menggunakan builder class untuk meminimalisir perubahan kode yang signifikan. Berikut contoh penggunaan builder class:

class Person {    constructor (firstName, phone, email) {        this.firstName = firstName;        this.phone = phone;        this.email = email;    }}class PersonBuilder {    constructor() {        this.firstName = '';        this.phone = '';        this.email = '';    }    setFirstName(firstName) {        this.firstName = firstName;        return this;    }    setPhone(phone) {        this.phone = phone;        return this;    }    setEmail(email) {        this.email = email;        return this;    }    build() {        return new Person(this.name, this.phone, this.email);    }}const andi = new PersonBuilder()    .setFirstName('Andi')    .setPhone('081234567890')    .setEmail('[email protected]')    .build();const budi = new PersonBuilder()    .setFirstName('Budi')    .setPhone('081234567891')    .setEmail('[email protected]')    .build();const carli = new PersonBuilder()    .setFirstName('Carli')    .setPhone('081234567892')    .setEmail('[email protected]')    .build();

Mungkin kode di atas terlihat lebih kompleks, akan tetapi jika kita akan merubah susunan constructor pada class Person kita tidak harus merubah setiap kode saat menginstansiasi objek dari class Person. Kita hanya perlu melakukan penyesuaian pada builder classnya. Misalkan saya akan menambah variabel lastName setelah variabel firstName pada constructor class Person, pada builder class kita dapat menambah method untuk melakukan setting lastName. Pada kode instansiasi objek pun opsional mau ditambahkan lastName atau tidak. Jika kita tidak melakukan setting lastName juga tidak akan menyebabkan data yang tertukar seperti nomor hp terbaca sebagai lastName. Berikut contoh kodenya:

class Person {    constructor (firstName, lastName, phone, email) {        this.firstName = firstName;        this.lastName = lastName;        this.phone = phone;        this.email = email;    }}class PersonBuilder {    constructor() {        this.firstName = '';        this.lastName = '';        this.phone = '';        this.email = '';    }    setFirstName(firstName) {        this.firstName = firstName;        return this;    }    setLastName(lastName) {        this.lastName = lastName;        return this;    }    setPhone(phone) {        this.phone = phone;        return this;    }    setEmail(email) {        this.email = email;        return this;    }    build() {        return new Person(this.name, this.phone, this.email);    }}const andi = new PersonBuilder()    .setFirstName('Andi')    .setLastName('Santoso')    .setPhone('081234567890')    .setEmail('[email protected]')    .build();const budi = new PersonBuilder()    .setFirstName('Budi')    .setPhone('081234567891')    .setEmail('[email protected]')    .build();const carli = new PersonBuilder()    .setFirstName('Carli')    .setPhone('081234567892')    .setEmail('[email protected]')    .build();

Pada kode di atas, walaupun saya menambahkan variabel lastName, itu tidak mewajibkan kita untuk merubah kode saat instansiasi objek seperti objek budi dan carli. Cara ini sangat berguna ketika aplikasi kita sudah kompleks dan instansiasi objek dari class tertentu tersebar di banyak file.

Demikian yang dapat saya bagikan, apabila ada yang perlu dikoreksi silahkan share di kolom komentar.


Original Link: https://dev.to/arisca_abdullah/menggunakan-builder-class-untuk-membuat-object-1j90

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To