Los patrones de diseño son definidos como "soluciones simples y
elegantes" recopilads por "the gang of four" compuesta por ErichGamma,
Richard Helm, Ralph Johnson y John Vlissides en el libro "Design
Patterns: Elements of Reusable Object-Oriented Software". Dichas
soluciones son resultado de la experiencia y son de gran importancia
para cualquier programador, debido a que esta demostrado su
funcionamiento. Los pratones se plantean como abstracciones, de manera
tal que permitan lograr soluciones de alto nivel, en las distintas
etapas del desarrollo.
Entonces, no solo tenemos la forma de como solucionar algunos
inconvenientes tipicos que se nos pueden presentar, sino que esta
garantizado su utilidad.
Ahora bien, el punto que cabe aclarar es que la forma en que se
implementan los Patrones de Diseño no es unica, es decir, cada quien
puede, haciendo caso al planteo de la solucion, desarrollar el codigo
para lograr la solucion.
La clasificacion basica de los Patrones de Diseño es la siguiente:
* Patrones de Creacion: como su nombre lo indica estan destinado a
la creacion de objetos. Permiten mayor flexibilidad
respecto de la instanciacion, de manera tal que se puedan
diferenciar los tipos distintos: instanciacion de clases e
instanciacion de objetos.
Algunos patrones de creacion son --> Abstract Factory, Factory
Method, Singleton, Prototype.
* Patrones Estructurales: son aquellos relativos a la interaccion
entre objetos y clases. Permiten lograr colaboraciones
eficientes entre objetos, con el fin de obtener mayor
funcionalidad en el proyecto donde los usemos.
Algunos de estos patrones son --> Adapter, Composite, Decorator,
Bridge.
* Patrones de Comportamiento: estan relacionados a la comunicacion
entre objetos. Dada una cierta estructura,
colaboracion u otra relacion entre objetos y/o clases, estos
patrones dan solucion a problemas relativos a la
interaccion a traves del tiempo.
Algunos de ellos son --> Iterator, Observer, Visitor, Command,
State.