Introducción a los patrones de comportamiento
Presentación
El diseñador de un sistema orientado a objetos se enfrenta a menudo al problema del descubrimiento de objetos. Este puede realizarse a partir de los dos aspectos siguientes:
-
La estructuración de los datos.
-
La distribución de los procesamientos y de los algoritmos.
Los patrones de diseño de estructuración aportan soluciones a los problemas de estructuración de datos y de objetos.
El objetivo de los patrones de diseño de comportamiento consiste en proporcionar soluciones para distribuir el procesamiento y los algoritmos entre los objetos.
Estos patrones de diseño organizan los objetos así como sus interacciones especificando los flujos de control y de procesamiento en el seno de un sistema de objetos.
Distribución por herencia o por delegación
Un primer enfoque para distribuir un procesamiento consiste en repartirlo en subclases. Este reparto se realiza mediante el uso en la clase de métodos abstractos que se implementan en las subclases. Como una clase puede poseer varias subclases, este enfoque habilita la posibilidad de obtener variantes en las partes descritas en las subclases. Esto se lleva a cabo mediante el patrón de diseño Template Method tal y como ilustra la figura 17.1.
Figura 17.1 - Reparto de procesamiento mediante herencia ilustrado por el patrón de diseño Template Method
Una segunda posibilidad de reparto se lleva a cabo mediante la distribución de procesamiento en los objetos cuyas clases son independientes. En este enfoque, un conjunto de objetos que cooperan entre sí concurren a la realización de un procesamiento o de un algoritmo. El patrón de diseño Strategy ilustra este mecanismo en la figura 17.2. El método solicita de la clase Entidad invoca para realizar su procesamiento al método calcula especificado mediante la interfaz Estrategia. Cabe observar que esta última puede tener varias implementaciones.
Figura 17.2 - Distribución de un procesamiento entre distintos objetos ilustrado por el patrón de diseño Strategy
La tabla siguiente indica, para cada patrón de diseño de comportamiento, el tipo de reparto utilizado....