Factory Method - Copy Vaste
Headlines News :
Home » , , » Factory Method

Factory Method

Written By Mustain on Senin, 07 Mei 2012 | 05.03

Kita sebagai programmer Java sering sekali langsung menggunakan operator new untuk melakukan konstruksi dan inisialisasi class kita menjadi object. Kita bisa menggunakan cara lain, yaitu dengan factory method.



Apa sebenarnya fungsi operator new ?

Dengan bahasa yang sangat teknis maka fungsi operator new adalah melakukan konstruksi dan inisialisasi class kita dengan melakukan alokasi memori untuk objek baru dan mengembalikan referensi memori dari objek tersebut. Operator ini juga akan menjalankan metode constructor.


Constructor sendiri adalah method yang namanya sama dengan nama class yang kita definisikan. Contoh penggunaan constructor dan operator new adalah seperti pada listing kedua class Java di bawah ini.


RowData.java

1.       import java.text.SimpleDateFormat;  
2.       import java.util.Date;  
3.         
4.         
5.       public class RowData {  
6.       private int numberOfFields;  
7.       private Date currentDate;  
8.         
9.       public RowData() {  
10.      this.numberOfFields = 0;  
11.        
12.      currentDate = new Date();  
13.      }  
14.        
15.      public void printCurrentDate()  
16.      {  
17.      SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");  
18.      System.out.println(df.format(currentDate));  
19.      }  
20.        
21.      }  


InstantiateRowData .java

1.       public class InstantiateRowData {  
2.         
3.       public static void main(String[] args)  
4.       {  
5.       /* 
6.        ********************************** 
7.        *  Konstruksi objek 
8.        *  dengan memanggil operator new 
9.        *  secara langsung dari luar class 
10.       ********************************** 
11.       */  
12.      RowData c = new RowData();  
13.        
14.      c.printCurrentDate();  
15.      }  
16.      }  




Factory Method


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

Method ini harus bersifat static dan ditempelkan ke dalam class tersebut. Dan untuk menjamin bahwa kita tidak akan bisa melakukan konstruksi langsung maka secara eksplisit method constructor harus diubah diberi akses private.


Lihatlah kedua class setelah diubah konstruksinya.


RowData.java
1.       import java.text.SimpleDateFormat;  
2.       import java.util.Date;  
3.         
4.         
5.       public class RowData {  
6.       private int numberOfFields;  
7.       private Date currentDate;  
8.         
9.       private RowData() {  
10.      this.numberOfFields = 0;  
11.        
12.      currentDate = new Date();  
13.      }  
14.        
15.      public static RowData getRowData()  
16.      {  
17.      return new RowData();  
18.      }  
19.        
20.      public void printCurrentDate()  
21.      {  
22.      SimpleDateFormat df = new SimpleDateFormat("MM/dd/yyyy");  
23.      System.out.println(df.format(currentDate));  
24.      }  
25.        
26.      }  

Perhatikan di baris 9 bahwa constructor kita telah diberi akses private dari yang sebelumnya bersifat publicsehingga operator new tidak mungkin dapat mencapainya lagi dari luar class RowData. Kita menggantikannya dengan suatu method static getRowData() yang bersifat public. Di dalam method ini kita kembali melakukan konstruksi objek dengan operator new.


InstantiateRowData.java
1.       public class InstantiateRowData {  
2.         
3.       public static void main(String[] args)  
4.       {  
5.       /* 
6.        ********************************** 
7.        *  Konstruksi objek 
8.        *  dengan memanggil 
9.        *      factory method 
10.       ********************************** 
11.       */  
12.      RowData c = RowData.getRowData();  
13.        
14.      c.printCurrentDate();  
15.      }  
16.      }  
Kegunaan Factory Method

Walaupun kelihatan sangat sederhana, tetapi apabila kita sudah makin mahir dalam melakukan coding di Java dan menangani proyek yang makin lama skalanya semakin besar maka akan ada kebutuhan untuk membuat aplikasi yang bersifat concurrent atau yang bersifat parallel multi threading. Kondisi ini membuat kita membutuhkan teknik coding yang makin kompleks dan sophisticated. Salah satunya adalah menghindarkan konstruksi objek setengah jadi (half-constructed object) yang dapat terekspos melalui methodconstructor. Dan ini bisa dipecahkan dengan sangat baik melalui teknik factory method ini.


Selain itu factory method ini juga sudah menjadi bagian dari design pattern yang merupakan kumpulan pola coding yang bisa digunakan kembali sesuai kasus atau reusable.
Share this article :

0 komentar:

Speak up your mind

Tell us what you're thinking... !

 
Support : Pengelola Website | Rahasia Wabsite Pemula
Proudly powered by Blogger
Copyright © 2011. Copy Vaste - All Rights Reserved
Template Design by Creating Website Published by Mas Template