673 votos

Ejemplos de Patrones de Diseño GoF

Estoy aprendiendo GoF Patrones de Diseño Java y quiero ver algunos ejemplos de la vida real de ellos. Pueden ustedes apuntan a la buena utilización de estos Patrones de Diseño, preferiblemente en Java núcleo de las bibliotecas?

Gracias!

60voto

jitter Puntos 35805
  1. Patrón Observer lo largo de todo el swing (Observable, Observer)
  2. MVC también en la fase de impulsión
  3. Modelo de adaptador: InputStreamReader y OutputStreamWriter NOTA: ContainerAdapter, ComponentAdapter, FocusAdapter, KeyAdapter, MouseAdapter son no los adaptadores; de hecho, son Objetos Nulos. Pobre de nomenclatura de la opción por el Sol.
  4. Patrón Decorator (BufferedInputStream puede decorar otras corrientes como FilterInputStream)
  5. AbstractFactory Patrón para el AWT kit de herramientas y el Swing de pluggable look-and-feel clases
  6. java.lang.Runtime#getRuntime() es Singleton
  7. ButtonGroup para el modelo de Mediador
  8. Action, AbstractAction puede ser utilizado para diferentes visual represntations para ejecutar el mismo código -> símbolo del patrón
  9. Las internadas de Cadenas o CellRender en JTable para la optimización del rendimiento de Patrón (También pensar acerca de las diferentes piscinas - Hilo de piscinas, grupos de conexión, EJB objeto de piscinas - optimización del rendimiento es realmente acerca de la gestión de los recursos compartidos)
  10. El Java 1.0 modelo de eventos es un ejemplo de la Cadena de Responsabilidad, como son los Filtros de Servlets.
  11. Iterador patrón en el Framework de Colecciones
  12. Contenedores anidados en AWT/Swing uso del Compuesto patrón
  13. Diseño de Gestores de AWT/Swing son un ejemplo de Estrategia

y muchos más supongo

32voto

NawaMan Puntos 10266
  1. Optimización del rendimiento se utiliza con algunos valores de Byte, Short, Integer, Long y Cadena.
  2. La fachada es utilizado en muchos lugares, pero la más obvia es la de secuencias de comandos de interfaces.
  3. Singleton - java.lang.Runtime viene a la mente.
  4. Resumen de la Fábrica - También secuencias de comandos y la API de JDBC.
  5. Comando - TextComponent de Deshacer/Rehacer.
  6. Intérprete - RegEx (java.util.regex.) y SQL (java.sql.) La API.
  7. Prototipo - No es 100% seguro de si este recuento, pero yo thinkg clone() método puede ser utilizado para este propósito.

23voto

duffymo Puntos 188155

RMI está basado en Proxy.

Debería ser posible citar uno para la mayoría de los 23 patrones GoF:

  1. Resumen de la Fábrica: java.sql interfaces de obtener todos sus implementaciones concretas de JDBC FRASCO cuando el controlador está registrado.
  2. Generador: java.lang.StringBuilder.
  3. Método de fábrica: XML fábricas, entre otros.
  4. Prototipo: tal vez clone(), pero no estoy seguro de que me voy a comprar eso.
  5. Singleton: java.lang.System
  6. Adaptador: Adaptador de clases en java.awt.event, por ej., WindowAdapter.
  7. Puente: Colección de clases en java.util. Lista implementado por ArrayList.
  8. Compuesto de: java.awt. java.awt.Component + java.awt.Container
  9. Decorador: Todo el paquete java.io.
  10. Fachada: ExternalContext se comporta como una fachada para la realización de la cookie, el ámbito de la sesión y operaciones similares.
  11. Optimización del rendimiento: Entero, Carácter, etc.
  12. Proxy: java.rmi paquete
  13. La cadena de Responsabilidad: Servlet filtros
  14. Comando: Swing de elementos de menú
  15. Intérprete: No directamente en el JDK, pero JavaCC sin duda los utiliza.
  16. Iterador: java.util.Iterator interfaz; no puede ser más claro que eso.
  17. Mediador: JMS?
  18. Recuerdo:
  19. Observador: java.util.Observer/Observable (mal hecho, aunque)
  20. Estado:
  21. Estrategia:
  22. Plantilla:
  23. Visitante:

No puedo pensar en ejemplos en Java para 10 de los 23, pero voy a ver si puedo hacerlo mejor mañana. Eso es lo edite.

21voto

uckelman Puntos 7228

El Resumen patrón de Fábrica se utiliza en distintos lugares. Por ej., DatagramSocketImplFactory, PreferencesFactory. Hay muchos más---buscar en el Javadoc de las interfaces que tienen la palabra "Fábrica" en su nombre.

También hay muy pocos casos de la Fábrica modelo, también.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X