Pregunta

Cuando se trata de la utilización de patrones de diseño, supongo que hay tres tipos de tiendas.Aquellos que no saben un patrón si les golpeó en la cara, estos por lo general prefieren la combinación de teclas Ctrl-C / Ctrl-V enfoque de código para su reutilización.Aquellos que pasan horas al día en busca de su código de la herencia, en espera de la aplicación de uno de los más grandes patrón - estos generalmente pasan más tiempo refactorización del código de programas simples que la que podría ser gastado en un centenar de años de mantenimiento.Y por último, aquellos que caminan en el camino medio patrones de uso cuando tienen sentido, y la codificación de lo que se de primero mínimamente expuestos código.

Me pregunto si alguien ha bloqueado una buena aproximación a una equilibrada incorporación de patrón de uso en el desarrollo de software de ciclo de vida.También, ¿cuál es el mejor recurso en la Web para los patrones, sus factores de motivación, y su uso adecuado?

Gracias.

¿Fue útil?

Solución

Hay un montón de diferentes 'patrón' familias por ahí, pero tomando su pregunta en los términos más amplios...

Me gustaría recomendar:

Fuera de línea (mis favoritos):

Fuera de línea (popular):

  • Patrones De Diseño GoF
  • Fowler Refactorización:Mejorar el Diseño de Código Existente

Otros consejos

Buen uso de los patrones depende de los conocimientos y de la experiencia;no hay ninguna fórmula para ello.Una buena cosa a hacer es tener a alguien que tenga experiencia en la aplicación de patrones juiciosamente para revisar periódicamente el código de todos los demás en el equipo para asegurarse de que no está haciendo un uso excesivo o underusing patrones de diseño.No están pre-horneados recetas - que necesitan la habilidad para aplicar de manera eficaz y que tiene que ser aprendido.

Mi primera y mejor de exposición a los patrones de diseño fue el Portland Pattern Repository.

El uso de "patrón" depende en un alto grado de

  1. el lenguaje utilizado
  2. los objetivos de uno, como a conseguir.

Patrón de diseño puede ser llamado sobrevalorado en lenguajes como C++, Java y similares.Se esconden de la inflexibilidad presenta con toda clase de tipificación de los problemas.He aquí un enlace sobre lo que el patrón de "sobrevivir" en menos restrictiva idiomas:http://norvig.com/design-patterns/

Otro ejemplo es el aspecto orientado a la programación, en la que podría con esfuerzo las cosas se "introduce" en un idioma que no está "diseñado" para él.

La filosofía detrás de las herramientas utilizadas tiene una gran influencia también.Basta con comparar digamos que el promedio de PHP o programas de Visual Basic y soluciones en Smalltalk, Common Lisp,Haskell y similares.

La sintaxis de los elementos a tener un gran impacto también.Verás toneladas de similar bucles digamos que en C, C++ (iteradores) pero si quieres mirar en lenguas que el apoyo a funciones de orden mayor usted acaba de encontrar un par de bucles.

Luego se tiene que ver en que las personas hacen de acceso a la programación de abajo a arriba o de arriba hacia abajo, poco a poco el crecimiento o la construcción de pirámides, o a cualquier otra persona preferencias

Sugiero la lectura del mencionado vínculo y, a continuación, comprobar las implementaciones en "diferentes" idiomas....

Saludos Friedrich

Todos los patrones de uso de todo el tiempo.Es posible que ellos no lo saben.Incluso una cosa tan simple como 'iterar a través de una lista' es un patrón.

Creo que la mejor manera de incorporar a los patrones en su ciclo de trabajo, es solo para ellos, y para referirse a ellos por su nombre cuando se habla de ellos y a la hora de comentar el código.Con suerte, esto resultará en la difusión del conocimiento.

Así que, digamos, por ejemplo, he visto que lo que estás haciendo es un gran ajuste para el Observador.Le dices a tu colega "Oye, esto va a ser muy fácil de hacer si queremos hacer de este objeto de un Observador, y este objeto al sujeto."

Su colega se entiende de inmediato-que los patrones de ahorro de tiempo, o que no te eduque, y siguiente el tiempo que usted menciona Observador que van a entender de inmediato.

Y, al mismo tiempo, se están difundiendo el conocimiento, y que van a detectar las oportunidades para el uso de los nuevos patrones que hemos aprendido de usted.Esto va en ambos sentidos de curso.La próxima vez podría ser ellos la enseñanza de la usted un nuevo patrón.

Todo esto no dependen de su colega de no ser el tipo que asiente con la cabeza y pretende entender algo cuando no es así.Usted los necesita para decir "Hey, usted mencionó Observador, no creo que yo sé lo que es."

Creo que el mejor recurso web contiene información acerca de los patrones y refactorización - http://sourcemaking.com

Yo soy un gran fan de la serie y he leído muchos de sus libros, así que yo recomendaría Head First Design Patterns.Usted puede leer en internet a través de O'Reilly Safari Bookshelf, pero la copia impresa que viene con una gran patrones de cartel también.

Yo no podía estar más de acuerdo con el comentario anterior.Puedo usar patrones de diseño donde puede, pero siempre se basan en el resto de mi equipo, para entender verdaderamente los beneficios de un patrón en particular.De lo contrario, acabará con el feo de código ligero y una envoltura que se parece bastante a la del patrón.

Como un aparte http://www.developer.com tiene un par de artículos de un mes que se refieren a los patrones de diseño y sus aplicaciones.Buena suerte!

Creo que tendría que recomendar Refactorización:Mejorar el Diseño de Código Existente.

Refactoring: Improving the Design of Existing Code
(fuente: 2020ok.com)

Un montón de ejemplos de cómo implementar el uso sensato de los patrones.

La definición y la respuesta original es el origen del concepto, en Patrones de diseño.Este libro aborda el concepto en un muy theortical nivel, en lugar de la gestión de hablar que se ha infiltrado en la zona.Su punto de vista es que los patrones de diseño son solo nombres comunes de las expresiones idiomáticas;que enumerar algunos y justificar sus posiciones.

Se debe evitar el "¿Qué patrón de diseño que debo usar el" tipo de pregunta, en lugar de tratar con el problema como "Soy yo, naturalmente, entrar en un área bien conocida?Si es así, ¿a los demás la experiencia que me ayude?".Los patrones de diseño, para mí, no son como prefab los componentes de la cola juntos para hacer una solución.Ellos son sólo una orientación repositorios para cuando te encuentres con una situación similar a la que otros han contrarrestado, y dar nombres a permitir a la gente para referirse a la situación general en la conversación.

Los patrones de diseño son divertidos en los que sólo se sabe dónde usar un patrón cuando usted entiende completamente el correspondiente patrón.Cosas como Estrategia, un Observador, un Iterador puede, aftera poco de práctica, el uso sin pensar demasiado duro.Si usted está en C# utiliza el Iterador todo el tiempo (IEnumerable...) sin pensar en él como un patrón.

En mi opinión, estos patrones simples son los mejores patrones.Ya tienes un trabajo que hacer, y tratando de calzador su problema en un patrón después de otro, cuando no bastante fit es un desperdicio de su tiempo, y los resultados en el código de malo.

Mi consejo es buscar en los diagramas de uml para un patrón, y si es bastante simple, y luego tratar de aprender lo suficiente como para que usted puede recordar más tarde.Un patrón con un simple contrato es probable que sea más útil, más a menudo.

Me gustaría ir con la banda de los Cuatro Patrones de Diseño de libro yo

Estoy de acuerdo con estas referencias, pero no hay newbie friendly.A de inicio rápido de aprendizaje de patrones de diseño de la manera más fácil :

Cabeza :patrón de diseño

A continuación, puede comprobar el más avanzado de los libros una vez que tienes la imagen en grande (una gran cantidad de ejemplos prácticos ;-))

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top