Ruby suportă moștenire simplă de clasă (o clasă poate moșteni un singur părinte direct prin class Copil < Parinte). Pentru a evita problemele complexe ale moștenirii multiple tradiționale din C++, Ruby rezolvă partajarea codului prin Module folosite ca Mixins.
| Comandă mixin | Unde injectează metodele modulului | Cum se apelează metoda |
|---|---|---|
include Modul |
Ca metode de instanță pe obiectul creat. | instanta.metoda |
extend Modul |
Ca metode de clasă (statice) direct pe clasă. | NumeClasa.metoda |
Mixins în acțiune: Modulul SerializabilJSON
module SerializabilJSON
def la_json_formatat
"{\"tip\": \"#{self.class.name}\", \"obiect_id\": #{self.object_id}}"
end
end
class ProdusMagazin
include SerializabilJSON # Injectează metoda la_json_formatat în toate instanțele!
attr_accessor :titlu, :pret
def initialize(titlu, pret)
@titlu = titlu
@pret = pret
end
end
produs = ProdusMagazin.new("Monitor 4K", 1850)
puts produs.la_json_formatat
Întrebări & Exemple de Cod:
Module și Mixins în Ruby: Moștenire Multiplă prin include și extendAi o nelămurire despre utilizarea comenzii
Module și Mixins în Ruby: Moștenire Multiplă prin include și extendsau 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.