0Pricing
Ruby Academy · Pelajaran

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.

Kelas Terbuka dan Monkey Patching — ilustrasi 1

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'.shout

Mengganti 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'.reverse

Mempertahankan 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'.reverse

Skenario 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'.shout

Ringkasan 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.

Kelas Terbuka dan Monkey Patching — ilustrasi 10

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

  1. Apa Itu Metaprogramming?
  2. Definisi Metode Dinamis
  3. Kelas Terbuka dan Monkey Patching
  4. Menggunakan send dan eval
← Kembali ke Ruby Academy