Divergent Change
ini bahasa indonesianya apa ya ?? ya sudahlah untuk sementara gitu aja dulu.
Kita membuat software kita agar mudah diubah. Nah jadi cocok dengan software yg soft alias lembut. Jadi ketika ada suatu perubahan maka kita harus bisa menuju pada suatu titik pada sistem tersebut dan membuat perubahan di sana. Jadi klo misalnya ada penambahan fungsi financial baru .. kita hanya mengubah di satu tempat. Klo kita ga bisa seperti itu. Brarti ketergantungannya erat. perlu ada refactoring.
divergent change muncul ketika satu kelas berubah dengan cara yg berbeda dikarena alasan yg berbeda. Ingat sekali lagi bahwa pengaruh beberapa perubahan pada satu kelas. abstrak ya .. membingungkan … maksudnya apa ?
sepertinya lebih baik dijelaskan dengan contoh sajalah.
misalnya kita punya kelas A. nah kita perhatikan bahwa misalnya nanti database kita diganti maka tiga method di dalamnya harus berubah. ok? itu perubahan yg pertama. apa perubahannya ?? pergantian database .. ok …
trus kemudian selanjutnya … kita amati lagi pada kelas A bahwa kalau misalnya ada penambahan instrument financial maka empat method nya harus diubah. Jadi perubahan yg mempengaruhi kelas A ada 2 yaitu satu perubahan database dan penambahan instrument financial. Ok. Kita pasti akan berteriak “responsibility”, “god class” dsb. yups.. kesalahan responsibilty. jadi sebenarnya diperlukan 2 object. Satu object hanya berubah kalau database diganti. Dan object yang lain hanya berubah jika instrument finance ditambah.
Sehingga responsibilitnya menjadi jelas. Menderita sekali object tersebut dia harus diutak atik karena banyak perubahan. Malang nasibmu …. my deepest condolences for you …
Terlalu banyak responsibilty bisa menyebabkan sakit kepala, ganguan pencernaan, saluran bla bla dan bla bla. Bayangkan jika seseorang memiliki tugas sebagai pelajar, kepala rumah tangga, pemimpin perusahaan, presiden dsb. wow .. bisa sih bisa .. tapi ….
misalkan ada perubahan dimana2. mungkin aja dia KO sendiri alias Knock Out. Karena ga sanggup menerima semua cobaan tersebut. hehehehe. Jadi selallulah buat kelas anda memiliki satu responsibilty. Kasihan ntar object yg banyak responsibilitynya. Biarkan lah object anda hanya fokus terhadap satu masalah jadi dia akan tajam di situ. Jangan perkosa hak object anda. Oke ?? Salam dari pembela hak Object.