2009/10/4 Emmanuel Oga <[email protected]>: > 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.
No hay que ser extremista tampoco :P Yo que sé, es encontrar el punto de balance entre "pureza" y pragmatismo. Pureza entre comillas porque no lo es necesariamente tanto. Si funciona, es fácil de testear, y es fácil de refactorear, es suficientemente bueno. Neeeeext :) >> >>> _______________________________________________ >>> 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 > _______________________________________________ Ruby mailing list [email protected] http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
