Î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.
Întrebări & Exemple de Cod:
const_get și const_set în Ruby: Instanțierea Dinamică a ClaselorAi o nelămurire despre utilizarea comenzii
const_get și const_set în Ruby: Instanțierea Dinamică a Claselorsau 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.