Maison  >  Article  >  Java  >  La différence entre le modèle d'usine abstrait et le modèle de méthode d'usine en Java

La différence entre le modèle d'usine abstrait et le modèle de méthode d'usine en Java

王林
王林original
2019-11-15 16:01:3211451parcourir

La différence entre le modèle d'usine abstrait et le modèle de méthode d'usine en Java

1. Modèle d'usine simple

Caractéristiques :

1. , classe abstraite sans interface. Il existe une méthode create() importante, qui utilise if ou switch pour créer un produit et le renvoyer.

2. La méthode create() est généralement statique, elle est donc également appelée usine statique.

Inconvénients :

1. Mauvaise évolutivité (je souhaite ajouter une sorte de nouilles. En plus d'ajouter une nouvelle classe de produits de nouilles, je dois également modifier le méthode de classe d'usine).

2. Il n'est pas pris en charge lorsque différents produits nécessitent différents paramètres supplémentaires.

2. Modèle de méthode Factory

Description du modèle :

Fournit une interface pour créer des objets (interface d'usine), soit sa classe d'implémentation (classe d'implémentation d'usine) décide quelle classe (classe de produit) instancier, et la classe d'implémentation crée des instances de la classe correspondante.

ModèleÉléments de formulaire :

Fournir une interface de classe de produit. Toutes les classes de produits doivent implémenter cette interface (il peut également s'agir d'une classe abstraite, c'est-à-dire d'un produit abstrait).

Fournit une interface de classe usine. Toutes les classes d'usine doivent implémenter cette interface (c'est-à-dire une usine abstraite).

Les instances de la classe de produits sont créées par la classe d'implémentation d'usine. La classe d’implémentation d’usine doit avoir une méthode pour instancier la classe de produit.

3. Modèle d'usine abstrait

Description du mode :

consiste à créer un groupe de les objets liés ou interdépendants fournissent une interface sans spécifier leurs classes concrètes.

4. Différences

Le modèle d'usine abstrait est une version améliorée du modèle de méthode d'usine Il est utilisé pour créer un ensemble d'objets liés ou interdépendants.

La différence entre celui-ci et le modèle de méthode d'usine est que le modèle de méthode d'usine cible une structure hiérarchique de produit ; tandis que le modèle d'usine abstrait cible plusieurs structures hiérarchiques de produits.

En programmation, une structure de produit est généralement représentée par une interface ou une classe abstraite, c'est-à-dire que tous les produits fournis par le modèle de méthode d'usine sont dérivés de la même interface ou classe abstraite, et du modèle d'usine abstrait. Les produits fournis sont dérivés de différentes interfaces ou classes abstraites.

Dans le modèle abstrait d'usine, il existe un concept de famille de produits : la soi-disant famille de produits fait référence à une famille de produits fonctionnellement liés situés dans différentes structures hiérarchiques de produits. Les séries de produits fournies par le modèle d'usine abstrait forment une famille de produits ; tandis que les séries de produits fournies par la méthode d'usine sont appelées une structure hiérarchique.

Tutoriel recommandé : Tutoriel Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn