Factory Pattern

Posted: May 13, 2009 in IT and Programming Stuff
Tags: ,

Baiklah, sekarang saya akan memenuhi salah satu janji saya di artikel sebelumnya, yaitu menjelaskan tentang Factory Pattern (tentunya sesuai dengan pemahaman saya yang minim ini :D)

Ketika meng-instansiasi sebuah object, pertimbangkan untuk menggunakan factory method.

Cara umum yang kita lakukan ketika kita akan membuat instant dari sebuah class :

Employee employee = new Employee();
class Employee(){
Employee(){}
}

Ketika misalnya ada kebutuhan bahwa Employee dirubah menjadi dua bentuk class yang berbeda : Engineer dan Operator. Apa yang akan kita lakukan?

Mau tidak mau kita akan menggunakan dua konstruktor yang berbeda :

Engineer engineer = new Engineer() dan
Operator operator = new Operator

Dan mau tidak mau juga, kita harus merubah semua costructor statement yang sudah kita buat sebelumnya.

Adakah cara yang lebih baik?? Ada..dengan menggunakan Factory Method yang merupakan implementasi dari Factory Pattern.

Factory Pattern adalah sebuah cara untuk melakukan instansiasi dari sebuah class secara adaptif.

Sedangkan Factory Method adalah method yang memiliki fungsi khusus untuk melakukan konstruksi class menjadi objek dan mengembalikan referensi objek tersebut.

//Cara 1, menggunakan switch statement

static Employee create (int employeeType) {
switch(i){
case 1 :  return new Engineer();
case 2 :  return new Operator();
//dst
}
}

EmployeeFactory doctor = EmployeeFactory.create(1);
Employee
Factory engineer = EmployeeFactory.create(2);

//Cara 2, menggunakan fungsi spesifik java
static Employee create (String name) {
try {
return (Employee) Class.forName(name).newInstance();
} catch (Exception e) {
throw new IllegalArgumentException (“Unable to instantiate” + name);
}
}

EmployeeFactory engineer = EmployeeFactory.create(“Engineer”);
EmployeeFactory operator = EmployeeFactory.create(“Operator”);

Dan ketika nantinya ada tambahan subtype dari Employee, effort yang kita
butuhkan untuk merubah existing code akan sangat minim.

Jadi salah satu kelebihan dari Factory Method adalah bahwa kita bebas
menentukan tipe pengembalian. Selain itu, Factory method juga memiliki
kelebihan dalam hal penamaan karena dapat kita sesuaikan sesuai kebutuhan.  Berbeda dengan konstruktor yang tidak dapat kita sesuaikan.

Tentu saja, selain kelebihan, Factory Method juga mempunyai kekurangan,
antara lain :
– Tidak dapat mempunyai subClass
– Tidak dapat dibedakan dari method biasa (dapat kita atasi dengan cara mengikuti konvensi umum yang berlaku atau dengan menyediakan dokumentasi yang memadai)

Ok, that’s it. Next post will be about Singleton Pattern. See ya..

Comments
  1. Tania says:

    Hi, Everything dynamic and very positively!🙂
    Thank you
    Tania

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s