Kelas Terbuka dan Monkey Patching
Jelajahi cara Ruby memungkinkan perubahan pada kelas yang sudah ada dan penambahan fungsi baru.
Kelas Terbuka dan Monkey Patching adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Memodifikasi Kelas saat Program Berjalan
Kelas Terbuka dan Modifikasi Dinamis
Ruby memungkinkan modifikasi kelas yang sudah ada saat program berjalan.
Fitur yang disebut 'Kelas Terbuka' ini memungkinkan pengembang memperluas atau mengubah perilaku secara dinamis.

Apa Itu Kelas Terbuka?
Apa Itu Kelas Terbuka?
Di Ruby, Anda dapat membuka kembali dan memodifikasi kelas yang sudah ada.
Hal ini memungkinkan penambahan metode baru ke kelas bawaan atau kelas yang ditentukan pengguna.
Menambahkan Metode ke Kelas yang Sudah Ada
Menambahkan Metode ke Kelas yang Sudah Ada
Cukup definisikan ulang sebuah kelas dan tambahkan metode baru.
class String
def shout
self.upcase + '!!!'
end
end
puts 'hello'.shoutMengganti Metode (Modifikasi Dinamis)
Mengganti Metode (Modifikasi Dinamis)
Anda dapat mengganti metode yang sudah ada di kelas Ruby.
class String
def reverse
'Reversed method overridden!'
end
end
puts 'hello'.reverseMempertahankan Metode Asli dengan super
Mempertahankan Metode Asli dengan super
Gunakan super untuk mempertahankan perilaku metode asli.
class String
def reverse
super + ' (custom behavior added)'
end
end
puts 'hello'.reverseSkenario Penggunaan Kelas Terbuka
Skenario Penggunaan Kelas Terbuka
Kelas terbuka berguna dalam berbagai situasi:
- Memperluas kelas bawaan dengan metode tambahan.
- Menyempurnakan pustaka pihak ketiga.
- Meningkatkan keterbacaan dan kemudahan pemeliharaan.
Risiko Modifikasi Dinamis
Risiko Modifikasi Dinamis
Modifikasi dinamis dapat berbahaya jika tidak digunakan dengan hati-hati.
- Perilaku yang tidak terduga saat mengubah kelas inti.
- Potensi konflik dengan pustaka pihak ketiga.
- Penelusuran kesalahan dan pemeliharaan yang lebih sulit.
Alternatif untuk Patching Monyet
Alternatif untuk Patching Monyet
Alih-alih mengubah perilaku global, pertimbangkan untuk menggunakan penyempurnaan.
Penyempurnaan memungkinkan Anda memodifikasi kelas dalam cakupan terbatas.
module StringExtensions
refine String do
def shout
upcase + '!!!'
end
end
end
using StringExtensions
puts 'hello'.shoutRingkasan Kelas Terbuka
Selamat!
Anda telah mempelajari cara memodifikasi kelas yang sudah ada menggunakan Kelas Terbuka dan Patching Monyet.
Selanjutnya, Anda akan menjelajahi cara menggunakan send dan eval untuk eksekusi metode dinamis.

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Kelas Terbuka dan Monkey Patching” gratis?
Ya — teks lengkap “Kelas Terbuka dan Monkey Patching” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Kelas Terbuka dan Monkey Patching”?
Jelajahi cara Ruby memungkinkan perubahan pada kelas yang sudah ada dan penambahan fungsi baru. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Kelas Terbuka dan Monkey Patching” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Apa Itu Metaprogramming?
- Definisi Metode Dinamis
- Kelas Terbuka dan Monkey Patching
- Menggunakan send dan eval