const_get și const_set în Ruby: Instanțierea Dinamică a Claselor în Ruby

Sintaxă
Module.const_get(nume_simbol_sau_string)
Module.const_set(nume, valoare)
Module.const_defined?(nume)

În Ruby, toate numele de clase și module sunt de fapt constante stocate pe obiecte de tip Module. Metodele const_get și const_set permit căutarea și instanțierea claselor dinamic pe baza numelui lor sub formă de text.

class ProcesatorCard; def executa() "Plată prin Card" end end
class ProcesatorPaypal; def executa() "Plată prin PayPal" end end

# Factory Pattern dinamic bazat pe input utilizator:
tip_plata = "Card" # Poate proveni dintr-o cerere API
clasa_str = "Procesator#{tip_plata}"

# Caută clasa dinamic în spațiul Object:
clasa_gasita = Object.const_get(clasa_str)
instanta = clasa_gasita.new
puts instanta.executa # "Plată prin Card"

# Crearea unei constante noi la runtime:
Object.const_set(:VERSIUNE_API, "v2.4")
puts VERSIUNE_API # "v2.4"

Echivalent Rails: Metoda const_get stă la baza funcționalității classify.constantize utilizată masiv în framework-ul Ruby on Rails.

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: const_get și const_set în Ruby: Instanțierea Dinamică a Claselor

Ai o nelămurire despre utilizarea comenzii const_get și const_set în Ruby: Instanțierea Dinamică a Claselor sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.