2009/10/4 Nicolás Sanguinetti <[email protected]>:
> 2009/10/4 Pablo Herrero <[email protected]>:
>>
>> El 3 de octubre de 2009 18:22, NachoKB <[email protected]> escribió:
>>>
>>> De hecho, si tenés múltiples modelos que comparten comportamiento... ¿no
>>> podrías usar herencia?
>>
>> Venia a decir exactamente eso, ademas, me parece q este problema en
>> particular tiene poco q ver con ActiveRecord.
>
> Ta, el tema de la herencia vs composición es fácil.
>
> El comportamiento que comparten, es *el único comportamiento* de la
> clase? En ese caso podés usar herencia. Si la clase hace algo más,
> entonces composición, o el Señor Single Responsability Principle se
> pone triste.

Que interesante que comentes esto... siempre tengo una vocesita en el
fondo de mi mente que me dice que una subclase de activerecord no
debería contener lógica de negocios... Una instancia de ActiveRecord
representa en realidad una fila de una tabla no? Su única
responsabilidad debería ser encontrar cosas guardadas en la db,
instanciar las filas, y guardar las modificaciones.

La alternativa seria usar clases ActiveRecord solo para todo lo que
tenga que ver con persistencia, y otras clases diferentes para la
lógica de negocios (analizando si es sible que *no* sea
1ARecord:1BusinessModel).

En fin, hasta que se me ocurra una alternativa (y/o razones más
contundentes para no hacerlo), lo mas seguro es que siga metiendo mi
lógica de negocios en subclases de ActiveRecord::Base.

>
>> _______________________________________________
>> Ruby mailing list
>> [email protected]
>> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>>
>>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>



-- 
--------------------------------------------------------------
EmmanuelOga.com - Software Developer
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar

Responder a