Maison >Problème commun >Que signifie le modèle d'usine abstrait ?

Que signifie le modèle d'usine abstrait ?

hzc
hzcoriginal
2020-06-29 15:55:532941parcourir

Le modèle d'usine abstrait consiste à créer d'autres usines autour d'une super usine, également appelée l'usine d'autres usines. Ce type de modèle de conception est un modèle de création, qui offre la meilleure façon de créer des objets. .

Que signifie le modèle d'usine abstrait ?

Le modèle d'usine abstrait consiste à créer d'autres usines autour d'une super usine. La Gigafactory est également connue comme l’usine des autres usines. Ce type de modèle de conception est un modèle de création qui offre une manière optimale de créer des objets.

Dans le modèle de fabrique abstraite, l'interface est une fabrique chargée de créer un objet associé sans spécifier explicitement sa classe. Chaque usine générée peut fournir des objets selon le modèle d'usine.

Introduction :

Intention : Fournir une interface permettant de créer une série d'objets liés ou interdépendants sans spécifier leurs classes concrètes.

Solution principale : résoudre principalement le problème de la sélection de l'interface.

Quand utiliser : les produits du système ont plus d'une famille de produits, et le système ne consomme que les produits d'une des familles.

Comment résoudre : définir plusieurs produits dans une famille de produits.

Code clé : Regroupez plusieurs produits similaires dans une usine.

Exemple d'application : Après avoir travaillé, pour assister à certaines soirées, vous devez avoir deux ou plusieurs ensembles de vêtements, tels que des vêtements de travail (ensembles complets, une série de produits spécifiques), des vêtements de mode (ensembles complets, une série de produits spécifiques) ), même pour une famille, il peut y avoir des vêtements pour femmes d'affaires, des vêtements pour hommes d'affaires, des vêtements pour femmes à la mode, des vêtements pour hommes à la mode, ce sont aussi des ensembles complets, c'est-à-dire une série de produits spécifiques. Supposons une situation (qui n'existe pas dans la réalité, sinon il n'y a aucun moyen d'entrer dans le communisme, mais il est utile d'illustrer le modèle abstrait de l'usine). Dans votre maison, une certaine armoire (usine à béton) ne peut stocker qu'un certain type). de tels Vêtements (ensemble, une série de produits spécifiques), chaque fois que vous récupérerez cet ensemble de vêtements, vous les sortirez naturellement de cette armoire. Utilisez la pensée POO pour comprendre que toutes les armoires (usines à béton) sont des armoires (usines abstraites) et que chaque ensemble de vêtements comprend des hauts (un produit spécifique), des pantalons (un produit spécifique) spécifiques), ces hauts en béton sont en fait des hauts (un produit abstrait), et le pantalon en béton est aussi un pantalon (un autre produit abstrait).

Avantages : lorsque plusieurs objets d'une famille de produits sont conçus pour fonctionner ensemble, cela peut garantir que le client n'utilise toujours que des objets de la même famille de produits.

Inconvénients : L'expansion d'une famille de produits est très difficile. Pour ajouter un certain produit d'une série, vous devez ajouter du code à la fois au créateur abstrait et au créateur spécifique.

Scénarios d'utilisation : 1. Changez de skin sur QQ et changez l'ensemble ensemble. 2. Générez des programmes pour différents systèmes d'exploitation.

Remarque : les familles de produits sont difficiles à étendre, mais les niveaux de produits sont faciles à étendre.

Implémentation :

Nous allons créer des interfaces Shape et Color et des classes d'entités qui implémentent ces interfaces. L'étape suivante consiste à créer la classe de fabrique abstraite AbstractFactory. Définissez ensuite les classes d'usine ShapeFactory et ColorFactory, qui étendent toutes deux AbstractFactory. Créez ensuite une classe de créateur/générateur d'usine FactoryProducer.

AbstractFactoryPatternDemo, notre classe de démonstration utilise FactoryProducer pour obtenir des objets AbstractFactory. Il transmettra les informations de forme Shape (CERCLE / RECTANGLE / SQUARE) à AbstractFactory afin d'obtenir le type d'objet dont il a besoin. Dans le même temps, il transmet également les informations de couleur Color (RED / GREEN / BLUE) à AbstractFactory afin d'obtenir le type d'objet dont il a besoin.

Que signifie le modèle dusine abstrait ?

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