No siempre debe establecer que su software se ajuste a un patrón de diseño, pero si coincide con uno lo usa. En muchos casos, la mayoría de las cosas que hace tendrán un patrón de diseño que es simplemente un patrón que se observó desde muchas implementaciones de software diferentes como comunes.
Por ejemplo, si tiene un conjunto de clases que necesitan sincronizarse. Bueno, eso funciona bien con el patrón Observer o Publish/Subscribe, donde una clase es el notificador y la otra escucha las notificaciones. Observer pattern
O supongamos que quiere limitar el uso de memoria en un motor de juego, entonces puede crear una ObjectPool. Object pool
o tal vez quiera simplificar un conjunto de objetos en una API simplr a continuación, utilizar el patrón de la fachada: Facade pattern
Muchas veces simplemente utilizando patrones funcionales como encapsulación o herencia están bien. Depende del problema En la mayoría de los casos, gran parte de lo que intentas codificar será resuelto en un patrón, pero los patrones no son la única forma de codificar. En muchos casos, comienzas a diseñar o tienes una necesidad y se convierte en un patrón.
Recuerde que los patrones se originaron al observar muchos tipos de problemas de software, no es el punto de partida, sino el reflejo de la arquitectura del software.
Design pattern (computer science)
Muchas muestras de patrones en dofactory.com: Design pattern tutorial by dofactory
Python patrones de diseño: http://video.google.com/videoplay?docid=-3035093035748181693
Forzar patrones de diseño es como forzar OO. Debe venir naturalmente de las necesidades en el proyecto en cuestión.
¿Has leído el libro? Leer el libro. –
Creo que esto puede ser un duplicado de http://stackoverflow.com/questions/85272/how-do-you-know-when-to-use-design-patterns –
Gracias Steve! El enlace realmente ayudó. –