Cemburu fitur adalah istilah yang digunakan untuk menggambarkan situasi di mana satu objek mendapat bidang bidang lain untuk melakukan semacam perhitungan atau membuat keputusan, daripada meminta objek untuk melakukan perhitungan itu sendiri.
Sebagai contoh sepele, pertimbangkan kelas yang mewakili persegi panjang. Pengguna persegi panjang mungkin perlu tahu wilayahnya. Pemrogram dapat mengekspos width
dan height
bidang dan kemudian melakukan perhitungan di luar Rectangle
kelas. Atau, Rectangle
bisa menjaga width
dan height
bidang pribadi dan menyediakan getArea
metode. Ini bisa dibilang pendekatan yang lebih baik.
Masalah dengan situasi pertama, dan alasan itu dianggap sebagai bau kode, adalah karena itu merusak enkapsulasi.
Sebagai aturan praktis, setiap kali Anda menggunakan bidang yang luas dari kelas lain untuk melakukan segala jenis logika atau perhitungan, pertimbangkan untuk memindahkan logika itu ke metode di kelas itu sendiri.