Maison Java javaDidacticiel Discussion approfondie sur la mise en œuvre et l'application du modèle d'usine Java

Discussion approfondie sur la mise en œuvre et l'application du modèle d'usine Java

Feb 24, 2024 pm 10:15 PM
工厂模式 应用案例分析 原理解析 Modèle d'usine simple

Discussion approfondie sur la mise en œuvre et lapplication du modèle dusine Java

Explication détaillée des principes et des applications du modèle d'usine Java

Le modèle d'usine est un modèle de conception couramment utilisé, qui est utilisé pour créer des objets et encapsuler le processus de création d'objets. Il existe de nombreuses façons d'implémenter le modèle d'usine en Java, les plus courantes étant le modèle d'usine simple, le modèle de méthode d'usine et le modèle d'usine abstrait. Cet article présentera en détail les principes et les applications de ces trois modèles d'usine et donnera des exemples de code correspondants.

1. Modèle d'usine simple
Le modèle d'usine simple est le modèle d'usine le plus simple et le plus couramment utilisé. Il utilise une classe d'usine pour renvoyer différents objets instanciés en fonction des paramètres transmis. L'idée principale du modèle d'usine simple est d'encapsuler le processus de création d'objet afin que l'appelant n'ait pas besoin de se soucier des détails de création d'objet.

Un exemple simple est donné ci-dessous. Supposons que nous ayons une classe de calculatrice Calculatrice, qui a les fonctions d'addition et de soustraction :

public class Calculator {
    public double add(double a, double b) {
        return a + b;
    }
    
    public double subtract(double a, double b) {
        return a - b;
    }
}
Copier après la connexion

Nous pouvons utiliser le modèle d'usine simple pour créer une instance de Calculatrice :

public class CalculatorFactory {
    public static Calculator createCalculator() {
        return new Calculator();
    }
}
Copier après la connexion

Puis dans Cette usine la classe est utilisée dans le code client pour créer une instance de Calculatrice :

public class Client {
    public static void main(String[] args) {
        Calculator calculator = CalculatorFactory.createCalculator();
        double result = calculator.add(1.0, 2.0);
        System.out.println(result);
    }
}
Copier après la connexion

Grâce au code ci-dessus, nous pouvons voir qu'en utilisant le modèle d'usine simple, le code client n'a pas besoin d'appeler directement new Calculator() pour créer une instance de Calculatrice, mais en appelant les méthodes CalculatorFactory Static pour créer des instances. L'avantage est que le code client a seulement besoin de savoir utiliser les fonctions de la Calculatrice et n'a pas besoin de se soucier de son processus de création spécifique.

2. Modèle de méthode d'usine
Le modèle de méthode d'usine encapsule le processus de création d'objet dans l'interface d'usine, et les étapes de création spécifiques sont implémentées par des classes d'usine spécifiques. Dans le modèle de méthode d'usine, chaque classe d'usine concrète est uniquement responsable de la création d'objets produit spécifiques.

Ce qui suit est un exemple d'implémentation du modèle de méthode d'usine. Supposons que nous ayons une pizzeria qui propose différents types de pizza, tels que CheesePizza et PepperoniPizza :

Tout d'abord, nous définissons une interface de pizza :

public interface Pizza {
    void prepare();
    void bake();
    void cut();
    void box();
}
Copier après la connexion

Ensuite, nous définissons Classe de pizzas spécifiques :

public class CheesePizza implements Pizza {
    @Override
    public void prepare() {
        System.out.println("Preparing Cheese Pizza");
    }
    
    @Override
    public void bake() {
        System.out.println("Baking Cheese Pizza");
    }
    
    @Override
    public void cut() {
        System.out.println("Cutting Cheese Pizza");
    }
    
    @Override
    public void box() {
        System.out.println("Boxing Cheese Pizza");
    }
}

public class PepperoniPizza implements Pizza {
    @Override
    public void prepare() {
        System.out.println("Preparing Pepperoni Pizza");
    }
    
    @Override
    public void bake() {
        System.out.println("Baking Pepperoni Pizza");
    }
    
    @Override
    public void cut() {
        System.out.println("Cutting Pepperoni Pizza");
    }
    
    @Override
    public void box() {
        System.out.println("Boxing Pepperoni Pizza");
    }
}
Copier après la connexion

Ensuite, nous définissons une interface de fabrique de pizza :

public interface PizzaFactory {
    Pizza createPizza();
}
Copier après la connexion

Ensuite, nous implémentons deux classes de fabrique de pizza spécifiques :

public class CheesePizzaFactory implements PizzaFactory {
    @Override
    public Pizza createPizza() {
        return new CheesePizza();
    }
}

public class PepperoniPizzaFactory implements PizzaFactory {
    @Override
    public Pizza createPizza() {
        return new PepperoniPizza();
    }
}
Copier après la connexion

Enfin, utilisons la fabrique de pizza dans le code client pour créer une instance de pizza :

public class Client {
    public static void main(String[] args) {
        PizzaFactory pizzaFactory = new CheesePizzaFactory();
        Pizza pizza = pizzaFactory.createPizza();
        pizza.prepare();
        pizza.bake();
        pizza.cut();
        pizza.box();
    }
}
Copier après la connexion

Grâce au code ci-dessus, nous pouvons voir qu'en utilisant le modèle de méthode d'usine, le code client n'a qu'à se soucier du type d'usine à pizza et à appeler sa méthode de création pour créer l'objet pizza correspondant. De cette façon, lors de l'ajout d'un nouveau type de pizza, il suffit d'ajouter une classe de pizza spécifique et la classe de pizza factory correspondante sans modifier le code client.

3. Modèle d'usine abstrait
Le modèle d'usine abstrait est une extension du modèle de méthode d'usine. Il définit un ensemble d'interfaces d'usine liées ou dépendantes via des classes d'usine abstraites implémentent ces interfaces et produisent différents produits en fonction de différents besoins. . Le produit.

Ce qui suit est un exemple d'implémentation du modèle d'usine abstrait. Supposons que nous ayons une usine informatique capable de produire des ordinateurs de différentes marques, tels que des ordinateurs Dell et des ordinateurs Lenovo :

Tout d'abord, nous définissons l'interface informatique et les classes informatiques spécifiques :

public interface Computer {
    void use();
}

public class DellComputer implements Computer {
    @Override
    public void use() {
        System.out.println("Using Dell computer");
    }
}

public class LenovoComputer implements Computer {
    @Override
    public void use() {
        System.out.println("Using Lenovo computer");
    }
}
Copier après la connexion

Ensuite, nous définissons l'interface de l'usine informatique abstraite :

public interface ComputerFactory {
    Computer createComputer();
}
Copier après la connexion

Ensuite, nous implémentons respectivement les classes spécifiques de l'usine informatique :

public class DellComputerFactory implements ComputerFactory {
    @Override
    public Computer createComputer() {
        return new DellComputer();
    }
}

public class LenovoComputerFactory implements ComputerFactory {
    @Override
    public Computer createComputer() {
        return new LenovoComputer();
    }
}
Copier après la connexion

Enfin, utilisons l'usine abstraite dans le code client pour créer des instances informatiques de différentes marques :

public class Client {
    public static void main(String[] args) {
        ComputerFactory dellComputerFactory = new DellComputerFactory();
        Computer dellComputer = dellComputerFactory.createComputer();
        dellComputer.use();

        ComputerFactory lenovoComputerFactory = new LenovoComputerFactory();
        Computer lenovoComputer = lenovoComputerFactory.createComputer();
        lenovoComputer.use();
    }
}
Copier après la connexion

Grâce au code ci-dessus, nous pouvons voir qu'en utilisant le modèle d'usine abstraite, le code client n'a besoin que de savoir comment utiliser la classe d'usine abstraite et l'interface réelle du produit, sans se soucier de la classe d'usine spécifique et des détails d'implémentation du produit. De cette façon, si vous devez ajouter une nouvelle marque d'ordinateur, il vous suffit d'ajouter une classe d'ordinateur spécifique et la classe d'usine informatique correspondante sans modifier le code client.

Résumé :
Cet article présente en détail les principes et les applications du modèle d'usine en Java, y compris le modèle d'usine simple, le modèle de méthode d'usine et le modèle d'usine abstrait. Le modèle d'usine simple convient à la création d'un seul type d'objet ; le modèle de méthode d'usine convient à la création d'un groupe d'objets avec une relation d'héritage ; le modèle d'usine abstrait convient à la création d'un groupe d'objets avec une relation associée. En utilisant le modèle d'usine, nous pouvons encapsuler le processus de création d'objets, rendant le code client plus concis et plus facile à maintenir et à développer.

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 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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Quels sont les scénarios d'application du modèle d'usine dans le framework Java ? Quels sont les scénarios d'application du modèle d'usine dans le framework Java ? Jun 01, 2024 pm 04:06 PM

Le modèle d'usine est utilisé pour découpler le processus de création d'objets et les encapsuler dans des classes d'usine pour les dissocier des classes concrètes. Dans le framework Java, le modèle d'usine est utilisé pour : Créer des objets complexes (tels que des beans dans Spring) Assurer l'isolation des objets, améliorer la testabilité et la maintenabilité Prendre en charge les extensions, augmenter la prise en charge de nouveaux types d'objets en ajoutant de nouvelles classes d'usine

Analyse et pratique : Compréhension approfondie des principes et analyse de cas des fonctions de rappel Java Analyse et pratique : Compréhension approfondie des principes et analyse de cas des fonctions de rappel Java Feb 01, 2024 am 08:02 AM

Analyse du principe de la fonction de rappel Java Une fonction de rappel, également connue sous le nom de fonction de rappel ou fonction de rappel, est un mécanisme qui notifie un morceau de code une fois qu'un événement ou une opération est terminé. Il permet de passer un bloc de code à une autre fonction afin qu'elle soit appelée lorsque certaines conditions sont remplies. Les fonctions de rappel sont souvent utilisées dans la programmation asynchrone, c'est-à-dire des opérations simultanées effectuées avant la fin du programme principal. En Java, les fonctions de rappel peuvent être implémentées de deux manières : À l'aide d'interfaces : vous créez une interface qui contient les méthodes à appeler. Vous pouvez ensuite utiliser cette interface comme paramètre

Quels sont les avantages du modèle d'usine Java Quels sont les avantages du modèle d'usine Java Dec 25, 2023 pm 05:40 PM

Les avantages du modèle d'usine Java : 1. Réduire le couplage du système ; 2. Améliorer la réutilisabilité du code ; 3. Masquer le processus de création d'objets ; 5. Prise en charge de l'injection de dépendances ; Améliorer la testabilité ; 8. Soutenir l'internationalisation ; 9. Promouvoir le principe ouvert et fermé ; 10. Fournir une meilleure évolutivité. Introduction détaillée : 1. Réduire le couplage du système. Le modèle d'usine réduit le couplage du système en centralisant le processus de création d'objets dans une classe d'usine ; 2. Améliorer la réutilisabilité du code, etc.

Comment appliquer le modèle d'usine dans Golang Comment appliquer le modèle d'usine dans Golang Apr 04, 2024 am 11:33 AM

Factory Pattern Dans Go, le modèle d'usine permet la création d'objets sans spécifier de classe concrète : définir une interface (telle que Shape) qui représente l'objet. Créez des types concrets (tels que Cercle et Rectangle) qui implémentent cette interface. Créez une classe d'usine pour créer des objets d'un type donné (tel que ShapeFactory). Utilisez des classes d'usine pour créer des objets dans le code client. Ce modèle de conception augmente la flexibilité du code sans se coupler directement aux types concrets.

Analyser les principes et l'utilisation des fonctions de rappel en Python Analyser les principes et l'utilisation des fonctions de rappel en Python Feb 02, 2024 pm 09:05 PM

Le principe et l'utilisation de la fonction de rappel Python La fonction de rappel d'analyse est une technologie de programmation courante, particulièrement largement utilisée en Python. Cela nous permet de gérer les événements et d'effectuer des tâches avec plus de flexibilité dans la programmation asynchrone. Cet article fournira une analyse détaillée des principes et de l'utilisation des fonctions de rappel et fournira des exemples de code spécifiques. 1. Le principe de la fonction de rappel Le principe de la fonction de rappel est basé sur le modèle de programmation événementielle. Lorsqu'un événement se produit, le programme transmettra la fonction de gestionnaire correspondante (fonction de rappel) au gestionnaire d'événements afin qu'il puisse être

Analyse des principes du Workerman Framework : explorer le secret de sa haute performance Analyse des principes du Workerman Framework : explorer le secret de sa haute performance Aug 07, 2023 am 10:37 AM

Analyse du principe du framework Workerman : explorer le secret de sa haute performance Introduction : À l'ère actuelle de développement rapide d'Internet, la création d'applications réseau hautes performances est devenue l'une des priorités des développeurs. En tant que moteur de communication réseau PHP, le framework Workerman est hautement reconnu par les développeurs pour ses excellentes performances et sa stabilité. Cet article analysera les principes du framework Workerman et explorera les secrets de sa haute performance. 1. Présentation du framework Workerman Workerman est un développement basé sur PHP

Une analyse approfondie du modèle d'usine Java : distinguer et appliquer les différences entre les usines simples, les méthodes d'usine et les usines abstraites Une analyse approfondie du modèle d'usine Java : distinguer et appliquer les différences entre les usines simples, les méthodes d'usine et les usines abstraites Dec 28, 2023 pm 03:09 PM

Explication détaillée du modèle d'usine Java : comprendre les différences et les scénarios d'application des usines simples, des méthodes d'usine et des usines abstraites. Introduction Dans le processus de développement logiciel, face à des processus complexes de création et d'initialisation d'objets, nous devons souvent utiliser le modèle d'usine pour résoudre ce problème. problème. En tant que langage de programmation orienté objet couramment utilisé, Java propose diverses implémentations de modèles d'usine. Cet article présentera en détail les trois méthodes d'implémentation courantes du modèle d'usine Java : usine simple, méthode d'usine et usine abstraite, et procédera à une analyse approfondie de leurs différences et scénarios d'application. un,

L'application du mode singleton et du mode usine dans la surcharge et la réécriture de fonctions C++ L'application du mode singleton et du mode usine dans la surcharge et la réécriture de fonctions C++ Apr 19, 2024 pm 05:06 PM

Modèle Singleton : fournissez des instances singleton avec différents paramètres via une surcharge de fonctions. Modèle d'usine : créez différents types d'objets grâce à la réécriture de fonctions pour dissocier le processus de création des classes de produits spécifiques.

See all articles