Dalam OOP (pemrograman berorientasi objek) penting untuk diingat mengapa Anda sedang membangun aplikasi dengan objek, bukan hanya fungsi (pemrograman prosedural). Terkadang pemrogram akan memperlakukan objek lebih seperti fungsi yang benar-benar mengalahkan tujuan objek sejak awal! Tujuan dari posting ini adalah untuk mengeksplorasi manfaat nyata dari OOP dan bagaimana menyusun model Anda dengan tepat.
Apa itu objek yang dipisahkan?
Berlawanan dengan kepercayaan programmer OOP pemula, objek lebih dari sekadar kumpulan anggota data dan metode terkait. Penting untuk diingat bahwa sebuah objek mewujudkan data dan metode yang hanya berkaitan dengan objek itu sendiri. Istilah “decoupling” digunakan untuk mengidentifikasi pemisahan blok perangkat lunak yang seharusnya tidak bergantung satu sama lain.
Mengapa penting untuk memisahkan objek?
Katakanlah kita memiliki a Mobil Kelas dengan metode driveForward(), berhenti(), belok(), klakson()dan changeLanes(). Objek ini memiliki desain yang buruk karena salah satu metodenya, changeLanes(), mungkin bergantung pada a Jalan kelas. Bagaimana jika Anda mencoba menggunakan kembali kelas ini untuk mobil yang hanya melaju off-road? Dalam hal ini, ubahJalur() metode ini sama sekali tidak berarti untuk instantiasi objek Anda. Selanjutnya, jika belok() metode yang untuk referensi ubahJalur() metode, seluruh objek akan mulai tampak terlalu spesifik untuk dibuat dan bekerja dengan mobil off-road. Selain itu, jika ada perubahan pada Jalan kelas, sangat mungkin bahwa Mobil kelas juga harus dimodifikasi. Sejak Mobil memiliki metode yang bergantung pada objek lain, objek ini dikatakan “dipasangkan” (yang kami coba hindari).
Cara memisahkan objek
Untuk membuat apa yang saya sebut “objek yang dimurnikan”, kita perlu memisahkannya sepenuhnya sedemikian rupa sehingga semua bidang dan metodenya khusus untuk apa yang dapat dilakukan objek dalam keadaan apa pun. Untuk memisahkan Mobil kelas, Anda ingin memindahkan ubahJalur() metode ke objek lain yang berinteraksi dengan Mobil, Suka Mengemudi di Kota. Objek baru ini bertindak sebagai mediator karena menggunakan the Mobil kelas untuk keadaan khusus tanpa menodai definisi aslinya.
Saat mendesain model objek Anda, tanyakan pada diri sendiri “apakah objek ini dimurnikan? Apakah dipisahkan?” Jika Anda secara religius bertanya pada diri sendiri pertanyaan ini saat membuat objek baru, Anda tidak hanya akan membuat kode yang jauh lebih bersih, Anda juga akan menghabiskan lebih sedikit waktu untuk melakukan pemfaktoran ulang. Semoga beruntung!