Maison > Java > javaDidacticiel > le corps du texte

Modèle de conception usine simple

巴扎黑
Libérer: 2017-06-26 09:42:42
original
1398 Les gens l'ont consulté

Après l'article précédent sur le mode singleton, je souhaite enfin continuer à écrire sur les modèles de conception. Commençons par le plus simple, le modèle d'usine simple. Ce modèle de conception est très simple et est également le plus couramment utilisé (il ne l'est pas). c'est pareil pour beaucoup de choses ?, plus c'est simple, plus le seuil est bas et plus c'est sympathique).

Concept (pardonnez-moi de copier sans vergogne l'Encyclopédie Baidu) :

Le mode usine simple est un mode de création, également appelé mode méthode d'usine statique (Static Factory Method), mais il n'appartient pas aux 23 types de GOF Un des modèles de conception. Le modèle d'usine simple utilise un objet d'usine pour déterminer quelle instance de la classe de produit est créée. Le modèle d'usine simple est le modèle le plus simple et le plus pratique de la famille des modèles d'usine et peut être compris comme une implémentation spéciale de différents modèles d'usine.

Ce qui est dit ici est très clair. Une usine a N objets C'est l'essence d'une usine simple. Le diagramme de classes UML spécifique est le suivant

<.>

Téléchargez d'abord le processus d'outil en ligne. Ceci est mon lien d'invitation. Bien sûr, si vous avez besoin de dessiner beaucoup d'images, veuillez dépenser de l'argent pour les soutenir.

Expliquons ce diagramme de classes. Il se compose de trois parties. La première est Creator, qui est la classe d'usine, la seconde est l'interface IProduct et la troisième est les produits spécifiques A et B.

Le code spécifique est le suivant

Interface produit :

public interface IProduct {void meathod();
}
Copier après la connexion
Produit spécifique :

public class ProductA implements IProduct {public void meathod() {
        System.out.printf("产品A");
    }
}
Copier après la connexion
public class ProductB implements IProduct {public void meathod() {
        System.out.printf("产品B");
    }
}
Copier après la connexion
Usine :

public class Creator {public static IProduct createProduct(String productName) {if (null == productName) {return null;
        } else if ("A".equals(productName)) {return new ProductA();
        } else if ("B".equals(productName)) {return new ProductB();
        }return null;
    }public static void main(String[] args) {
        IProduct productA = Creator.createProduct("A");
        productA.meathod();

        IProduct productB = Creator.createProduct("B");
        productB.meathod();
    }
}
Copier après la connexion
Sortie : Produit A Produit B

Exemples spécifiques :

Un modèle aussi simple est plus couramment utilisé. Prenons notre projet comme exemple. Les produits que nous fabriquons utilisent diverses interfaces de plusieurs partenaires, et la plupart des interfaces sont les mêmes. les champs et les détails spécifiques sont différents. Par exemple, lors d'une demande de crédit, toutes les informations personnelles relatives à la vie privée sont à peu près les mêmes, mais les informations individuelles sont très adaptées au modèle d'usine.

Avantages et inconvénients :

Avantages : Découplage, aide à l'encapsulation.

Inconvénients : augmente la complexité du client et n'est pas propice à l'expansion des sous-usines

En fait, l'essence du modèle d'usine simple est de choisir de le mettre en œuvre.

Disons simplement ceci et bien plus encore.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal