


Auto-apprentissage C#09 à partir de 0 - Exemple de modèle d'usine abstrait
1. Environnement applicable
(principalement utilisé dans la production et la fabrication de plusieurs produits, logiciels avec plusieurs skins, plusieurs bases de données, etc.)
Un système Vous ne devez pas vous fier aux détails de la façon dont les instances de classe de produits sont créées, composées et représentées, ce qui est important pour tous les types de modèles d'usine.
Il y a plus d'une famille de produits dans le système, et une seule des familles de produits est utilisée à la fois.
Les produits appartenant à une même famille de produits seront utilisés ensemble, et cette contrainte doit se refléter dans la conception du système.
Le système fournit une bibliothèque de classes de produits, et tous les produits apparaissent avec la même interface, de sorte que le client ne dépend pas de l'implémentation spécifique
2. Définition du modèle
Abstract Factory Pattern : Fournit une interface pour créer une série d'objets liés ou interdépendants sans spécifier leurs classes spécifiques. Le modèle d'usine abstrait, également connu sous le nom de modèle Kit, est un modèle de création d'objets.
3. Structure du motif
Le modèle Abstract Factory comprend les rôles suivants :
AbstractFactory : Abstract Factory
-
ConcreteFactory : Usine de béton
Produit abstrait : Produit abstrait
Produit : Produit en béton
Pour comprendre plus clairement le modèle de méthode d'usine, deux concepts doivent d'abord être introduits :
Hiérarchie des produits : La hiérarchie des produits est la structure d'héritage du produit. Par exemple, un résumé. La classe est un téléviseur et ses enfants. Les catégories incluent Haier TV, Hisense TV et TCL TV. Une structure hiérarchique de produits est formée entre le téléviseur abstrait et la marque spécifique du téléviseur. Le téléviseur abstrait est la catégorie parent et la marque spécifique. de la télévision est sa sous-catégorie.
Famille de produits : dans le modèle d'usine abstrait, la famille de produits fait référence à un groupe de produits fabriqués par la même usine et situés dans différentes hiérarchies de produits, tels que les produits Haier fabriqués par Haier Electrical Appliances. Les téléviseurs d'usine et les réfrigérateurs Haier se trouvent dans la hiérarchie des produits TV, et les réfrigérateurs Haier se trouvent dans la hiérarchie des produits réfrigérateur.
4. Code
Interface de processus
interface IFlow { IRxAlign CreateRxAlign(); IDispensing CreateDispensing(); } class FlowA : IFlow { public IRxAlign CreateRxAlign() { return new RxAlignA(); } public IDispensing CreateDispensing() { return new DispensingA(); } } class FlowB : IFlow { public IRxAlign CreateRxAlign() { return new RxAlignB(); } public IDispensing CreateDispensing() { return new DispensingB(); } }
Interface de couplage
interface IRxAlign { event LocationChange LocChange; int[] RoPulse { set; get; } int[] FiPulse { set; get; } int[] RoMaxStep { set; get; } double[] RoRESTarget { set; get; } double[] TxP { set; get; } double[] RESmin { set; get; } double[] RESmax { set; get; } Coordinate Location { set; get; } void LoadPara(string PN); void GoHome(); void Start(); void Stop(); } class RxAlignA : IRxAlign { private ControlCard card; private QSFP28 product; private double RESmax, RESmin, RES; private double[] TxPower; public RxAlignA() { this.RESmax = 1.0; this.RESmin = 0.4; } public bool ConfigPara() { try { this.card = new ControlCard(); this.product = new QSFP28(); return true; } catch { return false; } } public void GoHome() { //QSFP28 go home } public void Start() { //QSFP28 start } public void Stop() { card = null; product = null; } ... } class RxAlignB : IRxAlign { private ControlCard card; private CFP4 product; private double RESmax, RESmin, RES; private double[] TxPower; public RxAlignB() { this.RESmax = 1.0; this.RESmin = 0.4; } public bool ConfigPara() { try { this.card = new ControlCard(); this.product = new CFP4(); return true; } catch { return false; } } public void GoHome() { //CFP4 go home } public void Start() { //CFP4 start } public void Stop() { card = null; product = null; } ... }
Interface de distribution de colle
interface IDispensing { //code }class DispensingA : IDispensing { //code }class DispensingB : IDispensing { //code }
Appel du fil principal
flow = new FlowA(); align = flow.CreateRxAlign(); align.LoadPara(this.comboBoxPN.Text); dispens = flow.CreateDispensing(); dispens.//code...
Ce qui précède est le contenu de l'auto-apprentissage C#09 de 0 - Exemple de modèle d'usine abstrait Pour plus d'informations. contenu, veuillez faire attention au site Web PHP chinois (www.php.cn) !

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Guide d'Active Directory avec C#. Nous discutons ici de l'introduction et du fonctionnement d'Active Directory en C# ainsi que de la syntaxe et de l'exemple.

Guide du générateur de nombres aléatoires en C#. Nous discutons ici du fonctionnement du générateur de nombres aléatoires, du concept de nombres pseudo-aléatoires et sécurisés.

Guide de sérialisation C#. Nous discutons ici de l'introduction, des étapes de l'objet de sérialisation C#, du fonctionnement et de l'exemple respectivement.

Guide de la vue Grille de données C#. Nous discutons ici des exemples de la façon dont une vue de grille de données peut être chargée et exportée à partir de la base de données SQL ou d'un fichier Excel.

Guide des modificateurs d'accès en C#. Nous avons discuté de l'introduction Types de modificateurs d'accès en C# ainsi que d'exemples et de résultats.

Guide des nombres premiers en C#. Nous discutons ici de l'introduction et des exemples de nombres premiers en c# ainsi que de l'implémentation du code.

Guide des modèles en C#. Nous discutons ici de l'introduction et des 3 principaux types de modèles en C# ainsi que de ses exemples et de l'implémentation du code.

Guide de Factorial en C#. Nous discutons ici de l'introduction de factorial en c# ainsi que de différents exemples et de l'implémentation du code.
