Maison  >  Article  >  Java  >  Qu'est-ce que le modèle d'usine Java

Qu'est-ce que le modèle d'usine Java

angryTom
angryTomoriginal
2019-11-11 09:34:573178parcourir

Qu'est-ce que le modèle d'usine Java

Qu'est-ce que le modèle d'usine Java ?

Le modèle d'usine est le plus couramment utilisé en Java. les modèles de conception. 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 d'usine, nous n'exposons pas la logique de création au client lors de la création d'objets et pointons vers les objets nouvellement créés en utilisant une interface commune.

Pour faire simple, la nouvelle opération est remplacée par la méthode factory. En termes simples, lorsque vous créez un nouvel objet, il vous suffit d'appeler directement la méthode factory. Lors de la programmation, vous devez définir une interface factory. , qui consiste en différents Pour l'implémenter avec une sous-classe, définissez une classe d'usine spécifique et définissez une méthode pour générer des instances. Nous pouvons utiliser cette méthode pour obtenir des instances.

Avantages :

1. Un appelant qui souhaite créer un objet n'a besoin que de connaître son nom.

2. Haute évolutivité Si vous souhaitez ajouter un produit, il vous suffit d'étendre une classe d'usine.

3. Protégez l'implémentation spécifique du produit. L'appelant ne se soucie que de l'interface du produit.

Inconvénients :

Chaque fois qu'un produit est ajouté, une usine d'implémentation de classe et d'objet spécifique doit être ajoutée, doublant le nombre de classes dans le système. Dans une certaine mesure, cela augmente la complexité du système et augmente également la dépendance à l'égard de classes spécifiques du système. Ce n'est pas une bonne chose.

Exemples d'application :

1. Vous avez besoin d'une voiture qui peut être récupérée directement à l'usine sans vous soucier de la façon dont la voiture est fabriquée et de la mise en œuvre spécifique à l'intérieur cette voiture.

La mise en œuvre simple du modèle d'usine est la suivante :

//所有车的接口  有一个共同改的方法 开车
public interface Car {
    public void drive();
}
//奥迪类  实现car接口因为奥迪车也是车 肯定可以开的嘛
public class Audi implements Car {
    public Audi(){
        System.out.println("生产出一辆奥迪");
    }
    @Override
    public void drive() {
        System.out.println("开奥迪");
    }
}
//宝马类  实现car接口因为宝马车也是车 肯定也可以开
public class Bmw implements Car{
    public Bmw(){
        System.out.println("生产出一辆宝马");
    }
    @Override
    public void drive() {
        System.out.println("开宝马");
    }
}
//生产车的工厂  该工厂接收一个车名 你只需要告诉他你要生产什么车  就可以生产出对应的车出来
public class CarFactory {
    public static Car getCar(String caename){
        if(caename.equals("audi")){
            return new Audi();
        }else if(caename.equals("bmw")){
            return new Bmw();
        }
            return null;
    }
}
//测试
public class Test {
    public static void main(String[] args) {
        //告诉工厂类 你需要生产出一辆奥迪车  那么给昂他传一个参数audi进去
        Car audi = CarFactory.getCar("audi");
        //就可以生产出奥迪的车 调用开车的方法就可以开车啦
        audi.drive();
        //宝马类似
        Car bmw = CarFactory.getCar("bmw");
        bmw.drive();
    }
}
输出:
成产出一辆奥迪
开奥迪
生产出一辆宝马
开宝马

Tutoriel recommandé : tutoriel Java

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