In Ruby, da Sie mehrere Mixins einschließen können, aber nur eine Klasse erweitern, scheint es wie Mixins gegenüber Vererbung bevorzugt werden.Ruby Vererbung vs Mixins
Meine Frage: Wenn Sie Code schreiben, der erweitert/enthalten werden muss, um nützlich zu sein, warum sollten Sie es jemals zu einer Klasse machen? Oder anders gesagt, warum sollten Sie es nicht immer zu einem Modul machen?
Ich kann nur einen Grund denken, warum Sie eine Klasse wollen, und das ist, wenn Sie die Klasse instanziieren müssen. Im Fall von ActiveRecord :: Base wird es jedoch nie direkt instanziiert. Also sollte es nicht stattdessen ein Modul gewesen sein?
+1 für die artikulierte Antwort –
Große Antwort +1 –
Das Beispiel zeigt es ordentlich - Truck IS A Vehicle - es gibt keinen Truck, der kein Fahrzeug wäre. –