2009-04-04 14 views
9

Recientemente me surgió este concepto de patrones de diseño, y me sentí muy entusiasmado al respecto. ¿Pueden sugerir algunos recursos que me ayuden a profundizar en los patrones de diseño?Recursos para patrones de diseño de aprendizaje

+0

La mejor manera de aprender el patrón de diseño es haciendo un proyecto. Aquí hay un artículo que explica el patrón de diseño con un proyecto paso a paso http://www.codeproject.com/Articles/1009532/Learn-Csharp-Design-patterns-step-by-step-with-ap –

Respuesta

4

Wikipedia, el libro Gang of Four, y si usted está interesado específicamente en las implementaciones de C# hay un sitio decente here.

16

Ya sabes, para mí, uno de los mejores libros que hay es Head First Design Patterns. Personalmente me gusta el estilo que usan para comunicar el material.

+0

+1, I Me encantó este libro. Mi primero en Patrones de diseño. Leer GoF Design Patterns fue mucho más fácil gracias a este libro. – SirDemon

+3

Aprecio el intento del libro por ser "práctico" y fácil de leer, pero simplemente no obtuve los ejemplos. Para mí, hacer una pizza no es un tema realista de oop. Solo mi punto de vista personal. * encogerse de hombros * –

+2

Sí, sé a qué te refieres. Una de las cosas que me gustó de este libro es cómo construyeron los conceptos. Me encontré con muchos libros de patrones de diseño y artículos que claramente definen el patrón, pero fallan por completo al explicar lo que es o cómo usarlo verdaderamente. –

2

La pandilla de cuatro design patterns book es el estándar. Lo recomiendo si te sientes cómodo con C++.

Head first design patterns es bueno también, especialmente si te gustan los materiales visuales y quieres sentir que estás aprendiendo patrones de diseño en un restaurante de los años 50. Los ejemplos están en Java.

Hay veces múltiples formas de implementar patrones en un lenguaje de programación determinado (por ejemplo, ver esto discussion of options for implementing the Singleton pattern in C#), lo que podría ser digno de conseguir un libro para describir sucintamente los patrones comunes, y otro para sugerir la mejor manera de ponerlas en práctica en tu idioma favorito

0

Realmente, creo que la mejor manera de aprenderlos es comprender profundamente su lenguaje (C# basado en sus etiquetas), y luego comprometerse realmente con los objetivos de tener una buena separación de preocupaciones, bajo acoplamiento y alta cohesión. I'd read and study Robert Martin's writings about SOLID principles.

Y luego (y esta es la parte más importante), intente seguir esos principios a medida que desarrolla software. Descubrirás que comienzas a hacer ciertas cosas y luego te golpeará, "¡Oh !, ese fue el patrón de estrategia". Esto es realmente lo que demuestra el "movimiento de patrones" ... las personas que trabajan en cierto tipo de lenguaje, tratando de lograr un buen diseño de software, encontrarán soluciones que siguen ciertos patrones comunes.

+0

Guau, no tenía ni idea * hubo una "controversia" entre Jeff Atwood/Joel Spolsky por un lado, y Bob Martin por el otro. No escucho el podcast, entonces no había escuchado sobre eso. Pero Robert Martin ha documentado estos principios durante mucho tiempo. Los principios existen en la realidad (nadie hace ... –

+0

... principios, se descubren), pero Robert Martin hace un excelente trabajo de articularlos. El acrónimo "SÓLIDO" es nuevo (y algo tonto para mí), pero las ideas son de primera clase. –

0

me parece Design Patterns Explained a ser una buen texto introductorio El libro The Gang of Four es una referencia para aquellos que ya entienden los patrones.

2

Frecuentemente hago referencia a este sitio: Design Patterns. Tiene un bonito escrito que incluye ejemplos de todos los patrones de diseño populares de forma gratuita.

+0

este es un gran sitio web, es una pena que no usen PayPal y usen su propia página de pago estúpido. Solo para donar. –

0

Para aquellos que usan C#, encontré Patrones de diseño en C# un poco más fácil de leer que el libro de GoF. Los ejemplos, por supuesto, están en C# y la conexión se realiza con el nombre de Microsoft de los patrones.

3

Uno de los mejores libros es (como se mencionó anteriormente) el máximo Primera serie , ya que da grandes analogías y ejemplos del mundo real.

También hay otros libros decentes de Diseño de Java disponibles. Además, los sitios web que están especializados en el tema (véanse las publicaciones anteriores para algunos)

Aunque el libro Gang of Four fue mi primera lectura sobre este tema, es mi opinión que debe evitarlo especialmente si su partida fuera. En ese momento, esta era la referencia, pero hoy en día existen muchos libros que le dan muchos para elegir.

PERO, y enfatizo claramente este punto ... la práctica es la mejor herramienta de aprendizaje. Después de haber leído varios libros sobre el tema, estaba 100% seguro de conocer y entender estos patrones. Cuando intenté implementar algunos de ellos, pronto me di cuenta de que mis conocimientos eran en su mayoría 'teóricos' y mi comprensión no era siquiera estrecha. ¡Un gran golpe para mi ego!

Me propuse probar y desafiar a mis compañeros y aprendí rápidamente que estaban en el mismo barco que yo. Encuentro que el 99% de los programadores proclaman conocer patrones, pero cuando realmente se ponen a prueba, solo 1/3 real conoce bien el tema.

Me propuse implementar tantos patrones como pudiera en uno o más sistemas complejos. Puse la teoría a la práctica y lo que aprendí fue una mina de oro.

Uno de los aspectos más desafiantes de mi experiencia fue que cada patrón solo parece simple. Pero a veces vincular un conjunto de patrones puede ser aún más desafiante.

¡Lo animo a poner la teoría en práctica!

Jeach!

1

El primer libro de patrones de diseño es una buena lectura.

Si quieres poner a prueba su conocimiento de los patrones de diseño, aquí está el design patterns quiz

0

El año pasado compré y leí C# 3.0 Design Patterns, por Judith Bishop y he estado muy contento con él, después de haber tratado de conseguir a través Go4 y patrones de diseño en C#.

Esto cubre el conjunto estándar de patrones, agrupados por similitud, en orden de complejidad creciente, pero también los vincula a las características de lenguaje de C# 3.0, por lo que comienza con casos simples con interfaces y clases abstractas, y asciende a través de métodos de extensión, genéricos, tipos anónimos, funciones, etc., una muy buena forma de aprender ambos.

Todo presentado en un formato fácil de leer, con bastantes ejemplos del mundo real y un práctico código fuente.