Adaptive Programming
Adaptive programming bertujuan untuk membuat koneksi antar object menjadi tidak erat (loosely couple) atau structure-shy. Artinya kita membuat object tersebut semalu mungkin. hehehe. malu gimana maksudnya ?? jadi dia tidak mengexpose isi di dalamnya atau structure object tersebut.
Mmm… sebelum itu ada baiknya kita jelaskan apa sih maksud keterikatan atau ketegantungan satu object ke object lain. Perhatikan code berikut..
public class Account { private Period m_period; private Currency m_currency; private Money m_balance; List<AccountEntry> lstAccountEntry; public Account() { } ..... }
Nah dari code diatas kita bisa mengambil kesimpulan bahwa Kelas Account memiliki instance variable dengan type Money, Currency, Period, Entry. Berarti Account depend on (tergantung or terikat) kepada keempat kelas tersebut. Nah trus emang kenapa ? Coba pikirkan jika salah satu kelas diatas diubah maka kemungkinan besar code yg ada di Account akan terpengaruh. Tapi memang suatu object tidak mungkin berdiri sendiri tanpa tergantung ke object lain. Tetapi ketergantungan tersebut harus diminimalisir dan hanya untuk yg memang seharusnya. Jangan sampai membuat dependency yg tidak perlu.
Nah sekarang kita akan melihat code period seperti apa.
public class Period { DateRange m_dateRange; Year m_year; PeriodStatus m_status; ..... }
Misalkan kita ingin mengetahui range dari period tersebut dari account bagaimana caranya ?? kita akan melakukan hal seperti ini.
public class Account { private void assertIsInValidPeriod(AccountEntry accEntry) { // Range adalah property dengan tipe DateRange // Start adalah property dari DateRange dengan tipe DateTime DateTime startPeriod = m_period.Range.Start; DateTime endPeriod = m_period.Range.End; // lakukan pengecekan terhadap tanggal dari entry } }
nah sekarang dependency menjadi bertambah. Terhadap DateRange dan DateTime. Semakin banyak kita menekan dot dot dot dan mengakses instance variable dari kelas lain. Semakin banyak kita tahu mengenai object tersebut. Kita akan semakin terikat terhadap kelas tersebut. Karena kita mengetahui strukturnya.
Nah untuk mengatasi hal2 dependecy tersebut lahirlah Law of Demeter. Apa itu … mari kita lihat di postingan berikutnya .. hahahaha
pelan2 posting bro… santai aje…..
mumpung lagi semangat bro …
hahahaha
jadi ntar klo lama ga mosting masih banyak yg bisa dibaca2
wkwkwkw
rencananya entar gand mw di bikin jadi step by step
jadi ada chapter2nya
supaya membantu orang yg mw belajar dari awal
jadi untuk skarang ini ya agak brantakan dulu.
ntar disusun bertingkat.
karena buku bahasa indonesia ttg software development ga banyak. palingan yg rumus2 cepat. 10 hari belajar java dan lain2.
dan bukan rahasia umum lagi gand .. klo orang agak malas klo baca bahasa inggris. jadi salah satu penghambat IT di indonesia itu ya itu. bahasa.
nah makanya aku post pake bahasa indonesia. klo nulisnya di inggris lagi. sama aja boong. kita gilakkan software development di indonesia ini gand. mumpung masih muda
hahahahahah
object malu-malu vs object malu-maluin (object narsis).
object malu-malu tu artinya full encapsulation
object malu-maluin itu ga tw malu .. alias ngexpose semua dirinya keluar .. sombong .. hehehe .. alias ga pake setter getter .. langsung public semua hehehe
hahaha…oke wel, mantap lah… aku udah hidup dan mendunia di dunia Rich Internet Application. Tapi untuk yang OOP beginian juga oke juga koq. Tapi sebelum berlangsung terlalu jauh, gimana kita berdua membuat sebuah website yang khusus membahas seperti ini bro? terus untuk langkah awal, kita berdua dulu penulisnya, terus kita invite siapa2 aja yang mau bergabung. Gimana? Ntar kita bikin halaman donasi, bagi siapa saja mau memberi donasi, biar website kita eksis, yah, soalnya kita kan bayar hosting juga toh? terus ntar, kita buat buku yuukk.. lumayan menambah keuangan kita. Ingat suatu hal yang penting dan penting kali bro, programmer juga butuh makan. hahahahahaha… programmer juga punya pacar, programmer juga butuh ke mall.. hahahahaha… bener gak bro? gimana dengan usulku?