Template Method (patrón de diseño)
De Wikipedia, la enciclopedia libre
Tabla de contenidos |
[editar] ¿Qué es?
Un Template Method es un patrón de diseño que define una estructura algorítmica en la super clase, delegando la implementación a las subclases. Es decir, define una serie de pasos, en donde los pasos serán redefinidos en las subclases.
[editar] Propósito
Usando el Template Method, se define una estructura de herencia en la cual la superclase sirve de plantilla ("Template" significa plantilla) de los métodos en las subclases. Una de las ventajas de este método es que evita la repetición de código, por tanto la aparición de errores.
[editar] ¿Cuándo usarlo?
Este patrón se vuelve de especial utilidad cuando es necesario realizar un algoritmo que sea común para muchas clases, pero con pequeñas variaciones entre una y otras.
[editar] Implementación
Un ejemplo muy poco específico sería el siguiente:
[editar] Ejemplo de uso del patrón en un lenguaje PseudoFormal
CLASE Automóvil ABSTRACTA ACCION cambioMarcha(); //Sea como sea, los métodos deben ser definidos ABSTRACTA ACCION acelerar(); //como abstractos o virtuales ABSTRACTA ACCION frenar(); ABSTRACTA ACCION andar() MIENTRAS(vehículo_encendido) HACER acelerar(); SI(revoluciones_altas) ENTONCES cambioMarcha(); FinSI Si(obstaculo) ENTONCES frenar(); FinSI FinMIENTRAS FinCLASE CLASE AutomóvilManual HEREDA Automóvil ACCION cambioMarcha() /*Define el método cambiar marcha en un auto manual*/ FinACCION FinCLASE CLASE AutomóvilAutomático Automóvil ACCION cambioMarcha() /*Define el método cambiar marcha en un auto automático*/ FinACCION FinCLASE
Patrones de Diseño |
---|
Creacionales: Abstract Factory | Builder | Factory Method | Prototype | Singleton | Secreton |
Estructurales: Adapter | Bridge | Composite | Decorator | Facade | Flyweight | Proxy |
De Comportamiento: Chain of Responsibility | Command | Interpreter | Iterator | Mediator | Memento | Observer | State | Strategy | Template Method | Visitor |