Sunday, November 1, 2009

Design Pattern in Brief (10)

Facade

Facade digunakan untuk menyembunyikan kompleksitas dan dependency terhadap subsystem. Jika tidak menggunakan facade client akan langsung berhubungan dengan subsystem sehingga terjadi tight couple seperti gambar berikut :



Namun dengan memanfaatkan facade maka antara client dan subsystem menjadi lebih loose coupling seperti gambar berikut :



Berikut adalah contoh untuk lebih memahami pattern facade : Misalkan kita memiliki tiga bean yaitu Address, Account, dan CreditCard. Kita ingin menyimpan data ketiganya tanpa client harus mengetahui ketiga bean tersebut. Di sinilah facade berperan. Berikut adalah gambar ketiga bean dan facade tersebut :





Berikut beberapa catatan penting tentang facade :
- Facade seharusnya tidak didesain untuk menyediakan fungsi tambahan
- Jangan pernah mengembalikan return value berupa komponen dalam subsystem kepada client. Sebagai contoh jangan pernah memiliki method seperti CreditCard getCreditCard() karena client akan mengetahui isi subsystem dan penggunaan facade menjadi tidak jelas.
- Penggunaan facade seharusnya untuk melakukan business service, bukan individual task.
 

©2009 Stay the Same | by TNB