672 votes

Des exemples de Design Patterns GoF

Je suis en train d'apprendre GoF Java Modèles de Conception et je veux voir quelques exemples concrets d'entre eux. Pouvez-vous les gars pour une bonne utilisation de ces Modèles de Conception, de préférence en Java de base des bibliothèques?

Merci!!!!

107voto

jitter Points 35805
  1. Pattern observer dans l'ensemble de swing (Observable, Observer)
  2. MVC également en swing
  3. L'adaptateur: InputStreamReader et OutputStreamWriter REMARQUE: ContainerAdapter, ComponentAdapter, FocusAdapter, KeyAdapter, MouseAdapter sont pas les adaptateurs; ils sont en fait des Objets Nuls. Mauvais choix de nommage par le Soleil.
  4. Décorateur motif (BufferedInputStream pouvez décorer d'autres courants tels que FilterInputStream)
  5. AbstractFactory Modèle de la boîte à outils AWT et Swing pluggable look and feel classes
  6. java.lang.Runtime#getRuntime() est Singleton
  7. ButtonGroup de Médiateur modèle
  8. Action, AbstractAction peut être utilisé pour différents visuels represntations à exécuter le même code -> modèle de Commande
  9. Interné de Chaînes ou de CellRender dans JTable pour les poids Mouche Modèle (pensez Également à diverses piscines, des pools de Threads, les pools de connexion, EJB object piscines - Mouche est vraiment à propos de la gestion de ressources partagées)
  10. La Java 1.0 modèle d'événement est un exemple de Chaîne de Responsabilité, comme le sont Servlet Filtres.
  11. Itérateur modèle dans les Collections Cadre
  12. Les conteneurs imbriqués dans AWT/Swing utiliser le pattern Composite
  13. Gestionnaires de disposition dans AWT/Swing sont un exemple de Stratégie

et beaucoup d'autres je suppose

51voto

NawaMan Points 10266
  1. Poids mouche est utilisé avec certaines valeurs de Byte, Short, Integer, Long et Chaîne de caractères.
  2. La façade est utilisé dans beaucoup d'endroit, mais le plus évident est que les interfaces de Scripts.
  3. Singleton - java.lang.Runtime vient à l'esprit.
  4. Résumé de l'Usine - Aussi des Scripts et de l'API JDBC.
  5. Commande - TextComponent du Undo/Redo.
  6. Interprète - RegEx (java.util.regex.) et SQL (java.sql.) L'API.
  7. Prototype - Pas sûr à 100% si ce décompte, mais je thinkg clone() méthode peut être utilisée à cette fin.

42voto

duffymo Points 188155

RMI est basé sur le Proxy.

Devrait être possible de citer l'un pour la plupart des 23 modèles dans le GoF:

  1. Résumé de l'Usine: java.sql interfaces de tous la des implémentations concrètes de JDBC POT lorsque le pilote est inscrit.
  2. Constructeur: java.lang.StringBuilder.
  3. Méthode de fabrique: XML usines, entre autres.
  4. Prototype: Peut-être un clone(), mais je ne suis pas sûr que je vais acheter.
  5. Singleton: java.lang.Système
  6. Adaptateur: Adaptateur de classes en java.awt.cas, par exemple, WindowAdapter.
  7. Pont: Collection de classes en java.util. Liste mis en œuvre par ArrayList.
  8. Composite: java.awt. java.awt.Composant + java.awt.Conteneur
  9. Décorateur: Tous les cours de java.io paquet.
  10. Façade: ExternalContext se comporte comme une façade pour la réalisation de cookie, session de portée et d'autres opérations similaires.
  11. Poids mouche: Entier, Caractère, etc.
  12. Proxy: java.rmi paquetage
  13. La chaîne de Responsabilité: Servlet filtres
  14. Commande: Swing éléments de menu
  15. Interprète: Pas directement dans le JDK, mais JavaCC utilise certainement cela.
  16. Itérateur: java.util.L'interface Iterator; ne peut pas être plus clair que cela.
  17. Médiateur: JMS?
  18. Memento:
  19. Observateur: java.util.Observateur/Observable (mal fait)
  20. État:
  21. Stratégie:
  22. Modèle:
  23. Visiteur:

Je ne peux pas penser à des exemples en Java pour 10 des 23, mais je vais voir si je peux faire mieux demain. C'est ce que vous modifiez.

28voto

uckelman Points 7228

Le Résumé de l'Usine motif est utilisé dans différents endroits. E. g., DatagramSocketImplFactory, PreferencesFactory. Il y a beaucoup plus d'---recherche de la Javadoc pour les interfaces qui ont le mot "Usine" dans leur nom.

Aussi il y a assez peu de cas de l'Usine.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X