La " bande Des Quatre "Modèles de Conception, d'Éléments Réutilisables Logiciel Orienté Objet" livre contient deux entrées, "Abstract Factory" (aka "Virtuel Constructeur") et "Méthode de Fabrique"... je ne sais pas à propos de "Usine de Béton." J'ai entendu le terme, mais jamais trop pensé.
Méthode De Fabrique
Dans "l'Usine" Méthode d'un objet a une méthode qui est responsable de l'instanciation d'un autre objet. Un bon exemple serait le JavaScript objet de document et la création d' HtmlElement
objets:
var newDiv = document.createElement('div');
Ce n'est pas un bon exemple, comme une partie importante de la Méthode de factorisation est le polymorphisme. Si je pouvais étendre document
pour définir une autre classe qui définit un autre createElement
ce serait le premier de Méthode de Fabrique de matériel.
Résumé De L'Usine
Un résumé de l'usine est destinée à "fournir une interface pour la création de familles de ou des objets dépendants , sans préciser les classes de béton.
Typique de droit-dehors-de-le-livre est un exemple de Widget de l'Usine, de retour dans la journée lorsque le GoF a été publié, la croix-plate-forme de développement du GUI était un peu compliqué, alors vous pouvez définir un résumé widget usine de classe.
Cette classe pourrait avoir des méthodes d' createWindow
, createButton
, createScrollBar
etc. À son tour, plusieurs implémentations serait défini pour produire Swing widgets ou AWT ou quoi que ce soit. Ensuite, en fonction de la configuration, les différentes classe est instanciée.
Addendum - Usine De Béton
Je crois qu'une Usine de Béton est non-résumé de la mise en œuvre de l'Abrégé de l'Usine ou de la méthode de Fabrique.
Donc, quand j'écris mes propres généralisation de l' document
qui remplace createElement
, la classe est une Usine de production de Béton.
De même, en WidgetFactory
serait un Résumé de l'Usine, SwingWidgetFactory
serait une usine de béton.