Carolina Jiménez Gómez
La historia de los patrones de software no comienza con un científico de la computación, sino
con un arquitecto constructor, Christopher Alexander, quien reconoció que siempre que se diseñaba un edificio era reconocible un conjunto de problemas recurrentes. Definió éstos y sus soluciones como patrones.
Cada patrón describe un problema que ocurre una y otra vez en nuestro ambiente, y luego describe el
núcleo de su solución en forma tal que es posible usarla un millón de veces sin elaborarla dos veces
de la misma forma.
Christopher Alexander
Dan una descripción de los elementos y el tipo de relación que tienen junto con un conjunto de restricciones sobre cómo pueden ser usados.
Esquema de un patron segun Buschmann:
Los patrones arquitectónicos son la descripción de un problema particular y recurrente de diseño, que aparece en
contextos de diseño específico, y presenta un esquema genérico demostrado con éxito para su solución.
La selección de un
patrón arquitectónico es una decisión fundamental de diseño en el
desarrollo de un sistema de software.
Se enfocan a problemas asociados con el desarrollo de subsistemas y componentes, así como a la manera en la que se comunican entre sí y su ubicación dentro de una arquitectura mayor.
Su aplicación no tiene efectos en la estructura fundamental del sistema, pero sí sobre la de un subsistema, debido a que especifica a un mayor nivel de detalle, sin llegar a la implementación, el comportamiento de los componentes del subsistema.
Buschman
Categorías
class ConcreteCreator extends Creator{
protected Product factoryMethod(){
return new ConcreteProduct();
}
}
interface Product{...}
class ConcreteProduct implements Product{...}
public class Client{
public static void main(String args[])
{
Creator unCreator = new ConcreteCreator();
unCreator.factoryMethod();
}
}
Factory Method
Describen la forma de implementar todo un algoritmo específico o una parte de él en un nivel de abstracción más bajo, o bien una estructura de datos, para un componente de software en el contexto de un lenguaje de programación específico.
Arquitectura y diseño de Sistemas. Lic. Ariel Trellini. Departamento de Ciencias e Ingeniería de la Computación. Universidad Nacional del Sur.
ERIKA CAMACHO, FABIO CARDESO, GABRIEL NUÑEZ.