<$BlogRSDUrl$>

Friday, April 16, 2004

Design Pattern dan AOP
Artikel tentang design pattern decorator dan command ada amat menarik. Elok gak utk sesiapa yg nak belajar tentang kedua2 pattern ini, mahupun utk mereka yg nak tahu cara tambahan menggunakannya.

Utk sesuatu application / sistem yg mempunyai algo spt kiraan utk billing (spt joining fee, penggunaan biasa dan penggunaan berlebihan) yg diimplement menggunakan design pattern command. Maka, tambahan2 business rules spt setiap fee ini dikenakan tax, boleh diimplement dgn kemasnya menggunakan design pattern decorator.

Apa yg diperlukan ialah:
1. setiap kiraan kos ini diimplement oleh satu class yg mengimplement interface DP Command ini.
2. setiap code pengguna kpd algo ini perlu diubah utk merujuk kpd class decorator ini dan bukan kpd class asal.

Itu aje.

Tapi...

Kalau implement cara AOP macam mana? Hmmm.....

Apa yg diperlukan ialah:
1. setiap kiraan kos tambahan ini diimplement oleh satu aspect. Tak perlu implement apa2 interface. Pointcut aspect ni merujuk kpd semua class2 kiraan kos yg asal.
2. Tara. Satu aje.

Analisa
1. Menggunakan AOP, kita tak perlu risau sangat dgn design sesuatu sistem. Tak leh lah plak sistem yg dihack sampai hacus giler. Tapi, asalkan developer asal ini cuba sekurang2nya utk code dgn function2 yg agak sesuai, dah kira ok la, tak perlu sampai tahap developer asal perlu tahu design pattern command pun. Cthnya, developer asal bubuh semua fungsi nak buat kiraan kos ini dlm satu class, tapi method2 yg berbeza. Ini tak menggunakan apa2 DP, tapi dgn AOP, dah mencukupi utk kita lakukan ...... 'magik' :-)
2. Kekuatan AOP adalah dlm 'melekatkan' aspect ini kpd code2 kiraan asal mahupun kpd semua code pemanggil tanpa mereka ketahuinya.

Kesimpulan
Menggunakan AOP, sesuatu sistem yg kurang canggih dari segi designnya, mampu merasai kesan mudahnya maintenance spt mana sistem yg designnya agak canggih. Tapi, kalau sistem hancus designnya, maaf aje la. Ini meningkatkan nilai dan practicality sw dev secara keseluruhan. Tak ramai yg mahir utk melakukan design yg cukup dasat utk sesuatu application yg kompleks, termasuk saya. Dan sekarang, tak perlulah nak risau2 sangat dgn design yg canggih utk mendapatkan hasilnya. AOP dah sedia membantu.

Dgn kemahiran OOAD+OOP yg sederhana dicampurkan dgn AOP, mampu meningkatkan tahap sw dev kita secara keseluruhan ke tahap yg memberangsangkan. Inilah satu cth di mana, 1 + 1 = lebih dpd 2.

Cukup la iklan AOP setakat ini :-)

Comments: Post a Comment

This page is powered by Blogger. Isn't yours?