[pyar] Problema de patrones/diseño

Roberto Alsina ralsina en netmanagers.com.ar
Mie Ene 12 18:26:48 ART 2011


Dijo Andrés Gattinoni:

/Problema: tengo una clase madre (Backend) y una serie de clases hijas
que implementan distintos backends concretos. La clase Backend define
la interfaz pública de un backend y las hijas hacen lo necesario para
cada tipo de backend para llevar a cabo la operación correspondiente.
Hasta ahí ningún problema. El tema es que hay ciertas operaciones
comunes (por ejemplo, validaciones de tipos de datos) que yo quisiera
hacer en todos los métodos públicos, pero no quiero repetir código.
Cuál es la mejor forma de hacerlo?

/Y yo digo.../

/Porque no descomponés la función en una parte que se reimplementa "adentro" y una parte que no se reimplementa "afuera"?

Por ejemplo, algo así:

class madre(object):
     def metodo_importante(self, args):
         # hacemos las cosas que siempre hay que hacer
         self.validar_args(args)
         self.pasear_perro()

         #Y ahora hacemos las cosas que pueden cambiar
         self.hacer_trabajo(args)

     def hacer_trabajo(self,args):
         log.error("Te olvidaste de reimplementar hacer_trabajo")

Y obviamente:

class hija(madre):
     def hacer_trabajo(self, args):
         self.picar_piedra(args[0])

         # etc.

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110112/608580b9/attachment.html>


More information about the pyar mailing list