Maison  >  Article  >  Java  >  Introduction détaillée au modèle d'usine en Java

Introduction détaillée au modèle d'usine en Java

王林
王林avant
2019-11-25 17:45:252483parcourir

Introduction détaillée au modèle d'usine en Java

Classification des modèles d'usine :

1) Modèle d'usine simple (Simple Factory)

2) Modèle de méthode d'usine (Factory Méthode)

3) Modèle d'usine abstraite (Abstract Factory)

Tutoriels vidéo associés recommandés : Apprentissage Java

Modèle d'usine simple

Le modèle d'usine simple est également appelé modèle de méthode d'usine statique. Il ressort du changement de nom que ce mode doit être très simple. Son but est simple : définir une interface de création d'objets.

1) Rôle d'usine : c'est le cœur de ce modèle et contient une certaine logique métier et une logique de jugement. En Java, il est souvent implémenté par une classe concrète.

2) Rôle abstrait du produit : Il s'agit généralement de la classe parent héritée d'un produit spécifique ou de l'interface implémentée. Il est implémenté en Java par interface ou classe abstraite.

3) Rôle produit spécifique : L'objet créé par la classe factory est une instance de ce rôle. Implémenté par une classe concrète en Java.

Modèle d'usine abstraite :

Le but du modèle d'usine abstraite est de fournir une interface permettant au client de créer des objets de produit dans plusieurs familles de produits

Et les conditions suivantes doivent être remplies pour utiliser le modèle d'usine abstrait :

1) Il existe plusieurs familles de produits dans le système, et le système ne peut consommer qu'un seul des produits à la fois.

2) Les produits appartenant à la même famille de produits doivent être utilisés en conséquence.

Les différents rôles du modèle de fabrique abstraite (les mêmes que ceux de la méthode de fabrique) :

1) Rôle de fabrique abstraite : C'est le cœur de la fabrique modèle de méthode, qui est lié à l'application Rien à faire. C'est l'interface qu'un rôle d'usine spécifique doit implémenter ou la classe parent qui doit être héritée. En Java, il est implémenté par des classes abstraites ou des interfaces.

Présentation du code :

实例:面条工厂 实现工厂模式
···

Ce qui suit montre quelques morceaux de code de nouilles

package am2;

public class Daoxiaomian extends Miantiao{
	
	public void show(){
		System.out.println("我生产刀削面");
	}

}

Ce qui suit montre quelques morceaux de code en mode usine

package am2;
/**
 * 工厂模式
 * @author hadoop
 *
 */
public class Factory {

	public static final String XIMIANTIAO="ximiantiao";
	public static final String KUANMIANTIAO="kuanmiantiao";
	public static final String DAOXIAOMIAN="daoxiaomian";
	
	public static Miantiao getMiantiao(String name){
		Miantiao miantiao = new Miantiao();
		switch(name){
		case "ximiantiao":
			miantiao =  new Ximiantiao();
			break;
		case "kuanmiantiao":
			miantiao =  new Kuanmiantiao();
			break;
		case "daoxiaomian":
			miantiao =  new Daoxiaomian();
			break;
		}
		return miantiao ;
	}

}

Ce qui suit montre quelques lasagnes morceaux de code

package am2;

public class Kuanmiantiao extends Miantiao{
	
	public void show(){
		System.out.println("我生产宽面条");
	}

}

Ce qui suit montre quelques morceaux de code d'instanciation

package am2;
public class Miantiao {
public  void show(){
}
}

Ce qui suit montre quelques morceaux de code spaghetti

package am2;

public class Ximiantiao extends Miantiao{
	
	public void show(){
		System.out.println("我生产细面条");
	}

}

Ce qui suit montre quelques morceaux de code de test en mode usine. Obtenez diverses nouilles de l'usine Pièce de code

package am2;
/**
 * 工厂模式,我想从工厂获取到各种面条
 * 
 * @author hadoop
 *
 */
public class Test {

	public static void main(String[] args) {
		Miantiao miantiao = Factory.getMiantiao(Factory.XIMIANTIAO);
		miantiao.show();
		Miantiao miantiao1 = Factory.getMiantiao(Factory.KUANMIANTIAO);
		miantiao1.show();
		Miantiao miantiao2 = Factory.getMiantiao(Factory.DAOXIAOMIAN);
		miantiao2.show();

	}

}

Articles connexes recommandés : Introduction au langage 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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer