DEV Community

Cover image for Menggunakan Factory Method Untuk Membuat Object
Aris アリス
Aris アリス

Posted on

Menggunakan Factory Method Untuk Membuat Object

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);
Enter fullscreen mode Exit fullscreen mode

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');
Enter fullscreen mode Exit fullscreen mode

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. 😁

Top comments (0)