Prosedural vs OO (Part 2)
keduanya sama2 percaya diri dengan codenya..
Tapi apa yg terjadi kemudian.. Spec nya berubah.. Requirementnya diubah..
ada tambahan shape atau bentuk lagi.. skarang bentuk amoeba.. walah.. itu bentuk yg ga teratur. sama aja sperti sebelum. Klo di click rotasi dan mengeluarkan suara tapi kali ini .midi file.
Apa yg dilakukan kedua programmer tersebut.
Lary…
rotate masih tetap bisa jalan dan dipakai. toh hanya nambah di table aja. trus ntar dilookup
playSound(shapeNum) { //if (shape bukan amoeba) // gunakan shapenum untuk mencari pada table // file mp3 mana yg akan dimainkan //else // mainkan file .midi untuk amoeba }
walah .. mau ga mau .. si larry harus menyentuh kembali code lama yg sudah berjalan dan lulus test. mmm.. beresiko juga sih.. karena ada perubahan yg siginificant terhadap kode yg sebelum. Dan perhatikanlah bahwa perubahan spec pasti akan terus terjadi. Nah artinya nanti si Larry pasti harus ubah codenya begitu spec berubah.. walah… resiko…..
Nah gimana dengan si Brad ..
Brad…
Dia hanya nambahkan satu kelas baru. Ini yg saya suka dari OO pkirnya. Ga ush lagi nyentuh code yg lama. Code yg sudah jalan. Ga ada resiko. Flexible dan extensible.
class Amoeba { void rotate() { // code untuk memutar Amoeba } void playSound() { // mainkan sound .hif yg sesuai untuk Amoeba } }
bersambung ….
Welly, inikan bagian ke dua, tolong dong bagian pertamanya dikasih link.