El patrón de diseño que yo vi y se acopla a lo que estoy elaborando es el patrón Strategy
Este patrón declara una interfaz en común para los algoritmos que se presenten. Es decir, mi interfaz será el bosque que tengo como escenario, donde se encuentra mi monito, los fierros que recogerá y algunos obstáculos que tendrá.
Este pedazo de código llama a mi escenario (que es la interfaz común)
fondo= pygame.image.load("escenario.png")
Este otro contiene a mi monito (que es uno de los que realizarán los algoritmos)
monito= pygame.image.load("monito1.png")
Estas son las acciones que realiza mi monito:
if event.key == pygame.K_LEFT:
monito.move_ip(-10,0)
if event.key == pygame.K_RIGHT:
monito.move_ip(10,0)
if event.key == pygame.K_UP:
monito.move_ip(0,-10)
if event.key == pygame.K_DOWN:
monito.move_ip(0,10)
Los algoritmos, vienen siendo todas las acciones que logra hacer mi monito, como moverse a la izquierda, a la derecha, abajo, y hacia arriba.
Este código nos muestra el patrón Strategy en el lenguaje de programación Python.
class StrategyExample :
def __init__(self, func=None) :
if func :
self.execute = func
def execute(self) :
print "Original execution"
def executeReplacement1() :
print "Strategy 1"
def executeReplacement2() :
print "Strategy 2"
if __name__ == "__main__" :
strat0 = StrategyExample()
strat1 = StrategyExample(executeReplacement1)
strat2 = StrategyExample(executeReplacement2)
strat0.execute()
strat1.execute()
strat2.execute()
A continuación un diagrama del esquleto del patrón de diseño "Strategy" (No me pertenece)
Fuentes: http://www.ingenierosoftware.com/analisisydiseno/patrones-diseno.php
http://lobyte.blogspot.com/2011/01/patron-estrategia.html
http://stackoverflow.com/questions/963965/how-is-this-strategy-pattern-written-in-python-the-sample-in-wikipedia
Está bien la explicación, pero no me queda claro si implementaste o cómo implementaste el patrón.
ResponderEliminarCalificación: 3.75/5