Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Comience por abordar el contexto, el sistema de fuerzas y los problemas amplios que deban
resolver un entrenador y su equipo. Sólo necesita especificar los nombres de los patrones y hacer
la descripción frase por frase de cada uno.
12.7. Encuentre cinco repositorios de patrones y presente la descripción abreviada de los tipos de
patrones que contenga cada uno.
Data Mapper
Imaginemos que tenemos un sistema de almacenamiento de datos complejo, algo así como una
base de datos. La gestión mediante nuestro lenguaje de programación preferido de esta
información, puede resultar compleja y para nada relacionada con la forma de gestionar la
información dentro de nuestra aplicación.
Por citar un ejemplo más concreto, no resulta sencillo ni natural, recoger un dato de la una base
de datos SQL Server, usando c#. Básicamente porque el lenguaje c# está pensado para programar
orientado a objetos y el motor de SQL Server está pensado para modelos de datos relacionales
usando SQL como lenguaje de comunicación.
Repository
Una vez hemos montado nuestra capa de “Data Mapper”, al ir construyendo el resto de la
aplicación, nos vamos dando cuenta de que necesitamos crear un método que acepte condiciones
y filtros para realizar un gran número de consultas diferentes. Por ejemplo, necesitamos listados
de usuarios paginados, listados de usuarios para mostrar en un control de tipo “ComboBox”, e
incluso los usuarios que su nombre sea “Pepe”. Entonces, como resultado de este requerimiento
tan genérico, tendríamos una función parecida a esta:
/* ... */
// seleccionar los usuarios de nombre 'Pepe', ordenados por el apellido, paginando de 10 en 10, y
quiero la primera página
Pero el lenguaje de nuestro almacén de información (SQL), no debería ser manejado desde la capa
que gestiona el negocio de la aplicación.
Specification
El patrón “Specification” viene a resolver un problema de crear diferentes reglas de negocio que
puedan ser combinadas. Esto quiere decir que nos ayudará a crear diferentes normas que
resolverán un problema concreto de formas diferentes. Pero para orientarnos más rápido, vamos
a ver un ejemplo de implementación:
ISpecification Not();
12.8. Cuando Christopher Alexander afirma que “un buen diseño no se logra con sólo reunir las
partes ejecutantes”, ¿qué cree usted que quiere decir?
El buen diseño comienza con la consideración del contexto: el panorama. Cuando se evalúa el
contexto, se extrae una jerarquía de problemas que deben resolverse. Algunos de éstos serán
de naturaleza global, mientras que otros se abocarán a características y funciones específicas
del software. Todo será afectado por las fuerzas del sistema que influirán en la naturaleza
de la solución propuesta.
12.9. Con el uso de las tareas de diseño basado en patrones mencionadas en la sección 12.2.3,
desarrolle un diseño de esqueleto para el “sistema de diseño de interiores” descrito en la sección
11.3.2.
12.10. Elabore una tabla de organización de patrones para aquellos que haya utilizado en el
problema 12.9.