Menggunakan Factory Method Untuk Membuat Object
Aris アリス
Posted on April 30, 2022
Hai teman-teman 👋
Kali ini saya akan membagikan tentang penggunaan factory method. Pada umumnya, ketika kita akan membuat object, maka kita langsung melakukan instansiasi dari class referensinya seperti contoh berikut:
class Employee {
constructor (name, title, salary) {
this.name = name;
this.title = title;
this.salary = salary;
}
}
const andi = new Employee('Andi', 'manager', 8000000);
const budi = new Employee('Budi', 'staff', 4000000);
const carli = new Employee('Carli', 'staff', 4000000);
const dodi = new Employee('Dodi', 'staff', 4000000);
const emili = new Employee('Emili', 'staff', 4000000);
Pada kode di atas, saya membuat contoh class Employee dan membuat objek andi, budi, carli, dodi, dan emili. Dari beberapa objek tersebut dapat dikelompokkan menjadi manager dan staff. Apabila kita ingin mengubah gaji staff menjadi 5 juta maka kita harus mengubah gaji satu per satu pada saat instansiasi objek yang termasuk ke dalam staff. Untuk menghindari hal tersebut, kita dapat menggunakan factory method saat membuat objek agar lebih efisien. Berikut contoh kode pemrogramannya:
class Employee {
constructor (name, title, salary) {
this.name = name;
this.title = title;
this.salary = salary;
}
}
class EmployeeFactory {
static createManager(name) {
return new Employee(name, 'manager', 8000000);
}
static createStaff(name) {
return new Employee(name, 'staff', 4000000);
}
}
const andi = EmployeeFactory.createManager('Andi');
const budi = EmployeeFactory.createStaff('Budi');
const carli = EmployeeFactory.createStaff('Carli');
const dodi = EmployeeFactory.createStaff('Dodi');
const emili = EmployeeFactory.createStaff('Emili');
Di atas adalah contoh penggunaan factory method. Apabila kita akan mengubah gaji staff menjadi 5 juta, kita tinggal merubah method createStaff pada class EmployeeFactory.
Demikian yang dapat saya bagikan, apabila ada yang perlu dikoreksi silahkan share di kolom komentar. 😁
Posted on April 30, 2022
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.