Prosedural vs OO (Part 3)
Kemudian sang project manager pun melihat pekerjaan larry dan brad.Wah.. bukan begini cara rotasi amuba…. Kedua programmer tersebut mengasumsikan bahwa poros rotasi dari amoeba adalah ditengah sama seperti ketiga bentuk yg lain. Padahal sebenarnya amoeba berputar pada satu ujungnya. Nah bagaimana kedua programmer menghadapi perubahan tersebut lagi.
Larry..
mmm… bisa ditambahkan if else lagi pada prosedur rotate dan poros perputrannya dihardcode aja dulu.
Tapi apakah larry tidak memikirkan akankah terjadi perubahan lagi.
Larry akhirnya menambahkan rotation point argument pada prosedurnya. Banyak code yg berubah jadinya. Testing lagi, Compile lagi, Huff
void rotate(shapeNume, xPt, yPt) { // jika bentuk bukan amoeba // hitung titik tengah berdasarkan persegi // dan putar // else // gunakan xPt dan yPt sebagai // titik perputaran // dan putar }
Brad melakukan modifikasi hanya pada method rotate pada amoeba class. Tanpa menyentuh code class yg lain. Nah dia menambahkan attribute yg dimiliki oleh semua amoeba. Untuk rotasi.
class Amoeba { int xPoint; int yPoint; void rotate() { // code untuk memutar Amoeba // dengan menggunakan x dan y } ... }