Composite Pattern en Python
En un post anterior muestro como implementar el patron Composite en PHP. Hoy implemente el mismo código pero en Python, solamente como un jercicio propio y para empezar a hacer algo en Python ya que no hago mucho, solo leo :-(
Ya que estoy remarco algunas cosas para el que no conozca Python. En python para marcar los bloques de código se hace por medio de la identación lo cual hace -obligadamente- el código más fácil de leer. Los puntos y las ">>>" que ven en el código es porque estaba trabajando con la consola interactiva de Python algo muy practico para probar cosas rapidamente.
Bueno, sin más preambulos les dejo el código (disculpen, no encontre como colorear el código :-( ):
Dario Ocles.
>>> class Grafico: ... def dibujar(self): ... pass ... >>> class Triangulo(Grafico): ... def __init__(self,nombre = 'unknown'): ... self.nombre = nombre ... def dibujar(self): ... print '-Soy triangulo ', self.nombre ... >>> class Contenedor(Grafico): ... def __init__(self, nombre = 'unknown'): ... self.nombre = nombre ... self.contenedor = [] ... def dibujar(self): ... print 'Soy contenedor ', self.nombre ... for grafico in self.contenedor: ... grafico.dibujar() ... def agregar(self, grafico): ... self.contenedor.append(grafico) ... def sacar(self, grafico): ... if grafico in self.contenedor: ... self.contenedor.remove(grafico) ... >>> tri1 = Triangulo('1') >>> tri2 = Triangulo('2') >>> tri3 = Triangulo('3') >>> cont1 = Contenedor('1') >>> cont2 = Contenedor('2') >>> cont3 = Contenedor('3') >>> cont1.agregar(tri1) >>> cont1.agregar(tri2) >>> cont2.agregar(tri3) >>> cont3.agregar(cont1) >>> cont3.agregar(cont2) >>> >>> cont3.dibujar() Soy contenedor 3 Soy contenedor 1 -Soy triangulo 1 -Soy triangulo 2 Soy contenedor 2 -Soy triangulo 3


0 comentarios:
Publicar un comentario en la entrada