Sebuah Hipotesa::Reflection Sebagai Penjahat Perang Pelanggar OO

Reflection merupakan teknik "cheating" di teknologi .NET untuk mengambil suatu address memory dari suatu object kemudian kita mengontrol object tsb. Akibat dari features ini maka timbul suatu hipotesa bahwa Reflection merupakan salah satu Bad Smell. Kenapa? Jawabannya singkat dan logis adalah bahwa reflection dapat merusak sendi-sendi kaedah dari OO. Contoh terkecil sbb: Jika ada suatu variabel yg private maka menurut kaedah OO maka variabel tsb tidak bisa diakses oleh object lain tetapi kenyataannya dengan reflection kita dapat melakukannya..

So dengan demikian hipotesaku Reflection merupakan penjahat perang pelanggar OO. Any Comment ?

Share this post: | | | |
Published Wednesday, July 27, 2005 1:41 AM by Agus Kurniawan

Comments

# re: Sebuah Hipotesa::Reflection Sebagai Penjahat Perang Pelanggar OO

Iya nih. Reflection can be useful, tp juga dia "break rules" :)

Misal, kita punya assembly A yg refer ke Assembly X. Di Assembly X ini, dgn Reflection, kita bisa create Instance suatu class di assembly A! Breaking the rules of circular referencing.

Hal ini kan dilarang. Bahkan circular referencing menyebabkan code tidak bisa di compile. Tetapi, Reflection membuatnya mungkin... Ini mungkin menolong, tp ini juga jahat sekali...

I don't know, sometimes breaking the rules is the way? He..he.. Kayaknya perlu direfleksikan ke diri kita masing2 :)

Wednesday, July 27, 2005 2:40 AM by Agus Kurniawan

# re: Sebuah Hipotesa::Reflection Sebagai Penjahat Perang Pelanggar OO

Kan bisa pake atribut
[ReflectionPermissionAttribute(SecurityAction.Deny, TypeInformation = true)]

Memang sih rada janggal, tapi reflection dibutuhkan buat Tool Builder. Misal buat addin kayak UMLClassGen nya aku, dia butuh info private members buat bikin tanda "-" yg menandakan private. tanpa reflection kayaknya gak mungkin.

So, bisa dilihat begini: code program seharusnya tidak bisa terlihat agar tidak bisa di-hack, tapi nyatanya di .Net kita bisa lihat source code dgn Reflector. Lantas, apakah Reflector defeat the purpose of writing codes that shouldn't be seen?

Jawabannya bisa diaplikasikan ke Reflection dan OOP tadi =)

Wednesday, July 27, 2005 7:12 AM by Agus Kurniawan

# re: Sebuah Hipotesa::Reflection Sebagai Penjahat Perang Pelanggar OO

Susah dibayangkan debugger tools tanpa reflection, atau plugin komponen. Isu ini udah lama muncul di Java, sampai sekarang masih dipertahankan. It's just another tools if u know how to use it, katanya ...

Wednesday, July 27, 2005 8:54 PM by Agus Kurniawan

# re: Sebuah Hipotesa::Reflection Sebagai Penjahat Perang Pelanggar OO

test gus! aku ora iso submit

Thursday, July 28, 2005 11:18 PM by Agus Kurniawan

# On Reflection defeating encapsulation & how to prevent Reflection from accessing private fields

Ini sebenarnya isu lama, bahkan om A.K. sudah mem-posting di tahun 2005, Reflection Sebagai Penjahat

Tuesday, March 10, 2009 4:45 AM by Z & his Startup