Analyser trois cas d'application pratiques du modèle d'usine Java
Analyse de trois cas pratiques de modèle d'usine Java
Le modèle d'usine est un modèle de conception couramment utilisé, qui peut séparer la création et l'utilisation d'objets, rendant le programme plus évolutif. En Java, il existe trois cas pratiques courants de modèle d'usine : le modèle d'usine simple, le modèle de méthode d'usine et le modèle d'usine abstrait. Cet article analysera ces trois cas pratiques en détail et fournira des exemples de code spécifiques.
- Simple Factory Pattern
Simple Factory Pattern est le modèle d'usine le plus basique, qui crée des objets via une classe d'usine. Dans le modèle d'usine simple, le client n'a besoin d'interagir qu'avec la classe d'usine et n'a pas besoin d'interagir directement avec la classe de produit spécifique.
Ce qui suit prend comme exemple la création d'un objet graphique pour montrer la pratique du modèle d'usine simple :
// Créer une interface graphique
interface publique Shape {
void draw();
}
// Créer une classe graphique spécifique
public class Circle implémente Shape {
@Override public void draw() { System.out.println("画一个圆形"); }
}
classe publique Rectangle implémente Shape {
@Override public void draw() { System.out.println("画一个矩形"); }
}
// Créer une classe d'usine
classe publique ShapeFactory {
public static Shape createShape(String type) { switch (type) { case "circle": return new Circle(); case "rectangle": return new Rectangle(); default: throw new IllegalArgumentException("不支持的图形类型"); } }
}
// Exemple d'utilisation du client
classe publique Client {
public static void main(String[] args) { Shape circle = ShapeFactory.createShape("circle"); circle.draw(); Shape rectangle = ShapeFactory.createShape("rectangle"); rectangle.draw(); }
}
Dans le code ci-dessus, un objet graphique spécifique est créé via la méthode createShape de la classe d'usine ShapeFactory. Il suffit au client d'appeler cette méthode et de transmettre les paramètres correspondants pour obtenir l'objet graphique correspondant et effectuer les opérations ultérieures.
- Factory Method Pattern
Factory Method Pattern est un modèle d'usine légèrement plus complexe dans le Factory Method Pattern, chaque classe de produit spécifique correspond à une classe d'usine. Le client crée des objets produit spécifiques en interagissant avec la classe d'usine correspondante.
Ce qui suit prend la création d'un objet voiture comme exemple pour démontrer la pratique du modèle de méthode d'usine :
// Créer une interface de voiture
interface publique Car {
void drive();
}
// Créer une classe de voiture spécifique
public class BenzCar implémente Car {
@Override public void drive() { System.out.println("开奔驰车"); }
}
classe publique BmwCar implémente Car {
@Override public void drive() { System.out.println("开宝马车"); }
}
// Créer une interface d'usine
interface publique CarFactory {
Car createCar();
}
// Créer une classe d'usine spécifique
classe publique BenzCarFactory implémente CarFactory {
@Override public Car createCar() { return new BenzCar(); }
}
classe publique BmwCarFactory implémente CarFactory {
@Override public Car createCar() { return new BmwCar(); }
}
// Exemple d'utilisation du client
classe publique Client {
public static void main(String[] args) { CarFactory benzFactory = new BenzCarFactory(); Car benzCar = benzFactory.createCar(); benzCar.drive(); CarFactory bmwFactory = new BmwCarFactory(); Car bmwCar = bmwFactory.createCar(); bmwCar.drive(); }
}
Dans le code ci-dessus, il est créé via l'interface d'usine CarFactory et Son objet de voiture spécifique de classe d'usine spécifique correspondant. Le client n'a qu'à interagir avec la classe d'usine correspondante pour obtenir l'objet voiture correspondant et effectuer les opérations ultérieures.
- Modèle d'usine abstrait
Le modèle d'usine abstrait est le modèle d'usine le plus complexe, chaque classe d'usine spécifique peut créer plusieurs objets de produit de différents types. Le client crée une série d'objets produits associés en interagissant avec la classe d'usine.
Ce qui suit prend comme exemple la création d'un objet de téléphone mobile pour démontrer la pratique du modèle d'usine abstrait :
// Créer une interface de téléphone mobile
interface publique Téléphone {
void call();
}
// Créer un objet spécifique classe de téléphone mobile
classe publique ApplePhone implémente Phone {
@Override public void call() { System.out.println("使用苹果手机打电话"); }
}
classe publique HuaweiPhone implémente Phone {
@Override public void call() { System.out.println("使用华为手机打电话"); }
}
// Créer une interface d'usine
interface publique PhoneFactory {
Phone createPhone();
}
// Créer une interface spécifique factory class
public class ApplePhoneFactory implémente PhoneFactory {
@Override public Phone createPhone() { return new ApplePhone(); }
}
public class HuaweiPhoneFactory implémente PhoneFactory {
@Override public Phone createPhone() { return new HuaweiPhone(); }
}
// Exemple d'utilisation du client
public class Client {
public static void main(String[] args) { PhoneFactory appleFactory = new ApplePhoneFactory(); Phone applePhone = appleFactory.createPhone(); applePhone.call(); PhoneFactory huaweiFactory = new HuaweiPhoneFactory(); Phone huaweiPhone = huaweiFactory.createPhone(); huaweiPhone.call(); }
}
Dans le code ci-dessus, c'est créé via l'interface d'usine PhoneFactory et ses objets de téléphone mobile spécifiques de classe d'usine spécifique correspondants. Le client n'a qu'à interagir avec la classe d'usine correspondante pour obtenir l'objet téléphone mobile correspondant et effectuer les opérations ultérieures.
Résumé :
Ce qui précède présente trois cas pratiques du modèle d'usine : le modèle d'usine simple, le modèle de méthode d'usine et le modèle d'usine abstrait. Ces trois modes peuvent séparer efficacement la création et l'utilisation d'objets et améliorer l'évolutivité du programme. En développement réel, vous pouvez choisir le mode usine approprié à utiliser en fonction de besoins spécifiques.
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Apple a enfin dévoilé ses nouveaux modèles d'iPhone haut de gamme. L'iPhone 16 Pro et l'iPhone 16 Pro Max sont désormais dotés d'écrans plus grands que leurs homologues de dernière génération (6,3 pouces sur le Pro, 6,9 pouces sur le Pro Max). Ils obtiennent un Apple A1 amélioré

Plus tôt cette année, Apple a annoncé qu'elle étendrait sa fonctionnalité de verrouillage d'activation aux composants de l'iPhone. Cela relie efficacement les composants individuels de l'iPhone, tels que la batterie, l'écran, l'assemblage FaceID et le matériel de l'appareil photo, à un compte iCloud.

Plus tôt cette année, Apple a annoncé qu'elle étendrait sa fonctionnalité de verrouillage d'activation aux composants de l'iPhone. Cela relie efficacement les composants individuels de l'iPhone, tels que la batterie, l'écran, l'assemblage FaceID et le matériel de l'appareil photo, à un compte iCloud.

Cet article détaille les étapes pour enregistrer et télécharger la dernière application sur le site officiel de Gate.io. Premièrement, le processus d'enregistrement est introduit, notamment le remplissage des informations d'enregistrement, la vérification du numéro de messagerie électronique / téléphone portable et la réalisation de l'enregistrement. Deuxièmement, il explique comment télécharger l'application gate.io sur les appareils iOS et les appareils Android. Enfin, les conseils de sécurité sont soulignés, tels que la vérification de l'authenticité du site officiel, l'activation de la vérification en deux étapes et l'alerte aux risques de phishing pour assurer la sécurité des comptes et des actifs d'utilisateurs.

Si vous avez déjà mis la main sur un appareil de la gamme iPhone 16 d'Apple, plus précisément le 16 Pro/Pro Max, il est probable que vous ayez récemment rencontré un problème avec l'écran tactile. Le bon côté des choses, c'est que vous n'êtes pas seul – rapporte

Les étapes d'installation officielles de l'application Binance: Android doit visiter le site officiel pour trouver le lien de téléchargement, choisissez la version Android pour télécharger et installer; iOS recherche "Binance" sur l'App Store. Tous devraient prêter attention à l'accord par le biais des canaux officiels.

OUYI est un échange de crypto-monnaie de pointe avec son application iOS officielle qui offre aux utilisateurs une expérience de gestion des actifs numériques pratique et sécurisée. Les utilisateurs peuvent télécharger gratuitement le package d'installation de la version ouyi iOS via le lien de téléchargement fourni dans cet article, et profiter des principales fonctions suivantes: plateforme de trading pratique: les utilisateurs peuvent facilement acheter et vendre des centaines de crypto-monnaies sur l'application OUYI iOS, y compris Bitcoin et Ethereum . Stockage sûr et fiable: OUYI adopte une technologie de sécurité avancée pour fournir aux utilisateurs un stockage d'actifs numériques sûrs et fiables. 2FA, l'authentification biométrique et d'autres mesures de sécurité garantissent que les actifs des utilisateurs ne sont pas violés. Données de marché en temps réel: l'application OUYI iOS fournit des données et des graphiques de marché en temps réel, permettant aux utilisateurs de saisir le cryptage à tout moment

Description du problème Lors de l'appel d'Alipay Easysdk en utilisant PHP, après avoir rempli les paramètres en fonction du code officiel, un message d'erreur a été signalé pendant l'opération: "UNDEFINED ...
