Maison > Java > javaDidacticiel > Comment implémenter le modèle d'usine abstrait des modèles de conception Java

Comment implémenter le modèle d'usine abstrait des modèles de conception Java

WBOY
Libérer: 2023-04-29 14:19:06
avant
911 Les gens l'ont consulté

1. Introduction

Lorsque le système est prêt à fournir aux utilisateurs une série d'objets associés, mais ne souhaite pas que le code utilisateur soit couplé à ces objets, le modèle d'usine abstraite peut être utilisé .

2. Comment réaliser

1) Produit abstrait--Voiture

2) Produit spécifique--BYDCar, TSLCar

# 🎜 🎜#3) Usine abstraite

4) Usine à béton - BYDFactory, TSLFactory

3 Implémentation du code

/**
 * 抽象产品
 */
public abstract class Car {
    public abstract String getName();
}
Copier après la connexion
/**
 * 具体产品
 */
public class BYDCar extends Car {
    String name;
    public BYDCar(String name){
        this.name = name;
    }
    @Override
    public String getName() {
        return name;
    }
}
Copier après la connexion
/**
 * 抽象工厂
 */
public abstract class CarFactoty {
    public abstract Car createCar(String name);
}
Copier après la connexion
 /**
 * 具体工厂
 */
public class BYDFactory extends CarFactoty {
    @Override
    public BYDCar createCar(String name) {
        return new BYDCar(name);
    }
}
Copier après la connexion

4. 🎜 🎜#

1) Le modèle d'usine abstraite peut créer une série d'objets associés pour les utilisateurs, dissociant les utilisateurs des objets de ces classes

2) L'utilisation du modèle d'usine abstraite peut facilement configurer les paramètres pour utilisateurs Une liste d'objets.

3) Dans le modèle d'usine abstraite, une "usine à béton" peut être ajoutée à tout moment pour fournir aux utilisateurs un ensemble d'objets associés.

Par exemple : Dans l'exemple ci-dessus, si l'utilisateur a besoin d'une voiture Tesla, il peut être complété en créant un objet Tesla et une usine Tesla. #🎜🎜 #

/**
 * 具体产品
 */
public class TSLCar extends Car {
    String name;
    public TSLCar(String name){
        this.name = name;
    }
    @Override
    public String getName() {
        return name;
    }
}
Copier après la connexion
rrree

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:yisu.com
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