De Design Pattern par GoFComment dois-je comprendre la motivation de l'usine abstraite?
RÉSUMÉ FACTORY
intention
fournir une interface pour la création de familles d'objets liés ou dépendants sans spécifier leurs classes concrètes.
Motivation
Tenir compte une boîte à outils d'interface utilisateur qui prend en charge plusieurs look and feel normes, telles que Motif et Presentation Manager. Différent look-and-feels définit différentes apparences et comportements pour l'utilisateur interface "widgets" comme les barres de défilement, les fenêtres et les boutons. Pour être portable par rapport aux normes de look-and-feel, une application ne devrait pas coder en dur ses widgets pour un aspect particulier. L'instanciation classes de widgets spécifiques à l'aspect et à la sensation dans l'application rend difficile la modification ultérieure de l'aspect et de la convivialité.
Nous pouvons résoudre ce problème en définissant une classe abstraite WidgetFactory qui déclare une interface pour créer chaque type de widget de base. Il existe également une classe abstraite pour chaque type de widget, et les sous-classes de béton implémente des widgets pour des normes spécifiques de style et de convivialité . L'interface de WidgetFactory a une opération qui renvoie un nouvel objet de widget pour chaque classe de widget abstrait. Les clients appellent ces opérations pour obtenir des instances de widget, mais les clients ne connaissent pas les classes concrètes qu'ils utilisent. Ainsi, les clients restent indépendants du .
Je me demandais ce que signifient les suivants signifient:
Pour être portable sur les normes look-and-feel, une application ne doit pas coder en dur ses widgets pour un look particulier et se sentir .
et
instanciation cours look-and-feel spécifiques des widgets dans l'application rend difficile de changer le look and feel plus tard.
En particulier, sans utiliser une classe de fabrique abstraite, à quoi ressemble le code et pourquoi est-il mauvais? Merci.