En Ruby, dado que puede incluir varias mixinas pero solo extender una clase, parece que las mixins serían preferibles a la herencia.ruby inheritivity vs mixins
Mi pregunta: si está escribiendo código que debe ser extendido/incluido para ser útil, ¿por qué alguna vez lo haría una clase? O dicho de otra manera, ¿por qué no siempre lo convertirías en un módulo?
Solo puedo pensar en una razón por la que querrías una clase, y eso es si necesitas instanciar la clase. En el caso de ActiveRecord :: Base, sin embargo, nunca se crea una instancia directamente. Entonces, ¿no debería haber sido un módulo?
+1 para la respuesta articulada –
Gran respuesta +1 –
El ejemplo lo muestra claramente - El camión ES un vehículo - no hay un camión que no sea un vehículo. –