


Comprendre les avantages et les scénarios applicables du modèle décorateur et du modèle stratégique : création de méthodes de code Java faciles à maintenir
Créer du code Java maintenable : pour comprendre les avantages et les scénarios applicables du modèle de décorateur et du modèle de stratégie, des exemples de code spécifiques sont nécessaires
Ces dernières années, avec le développement rapide du développement logiciel, la création de code maintenable est devenue une étape importante un problème pour tout le monde. C’est un problème auquel les développeurs attachent une grande importance. Un code maintenable peut réduire la difficulté d’une maintenance ultérieure et améliorer la lisibilité et l’évolutivité du code. Dans le développement Java, le modèle décorateur et le modèle stratégie sont deux modèles de conception couramment utilisés, qui peuvent nous aider à créer un code plus maintenable.
Le modèle décorateur est un modèle de conception structurelle qui nous permet d'ajouter dynamiquement de nouvelles fonctionnalités aux objets sans modifier la structure de l'objet existant. Ce mode obtient l'effet d'ajouter dynamiquement des fonctionnalités à l'objet en enveloppant l'objet dans une classe de décoration, puis en superposant de manière récursive les classes de décoration selon les besoins au moment de l'exécution.
Ci-dessous, nous démontrons l'utilisation du motif décorateur à travers un exemple précis. Supposons que nous ayons un programme de café simple. Le café propose une variété de boissons à base de café, telles que de l'espresso, du moka, etc. Chaque boisson au café a un prix de base, avec la possibilité d'ajouter des ingrédients supplémentaires tels que du lait, du sirop, etc., chacun ayant un prix. Nous pouvons utiliser le modèle décorateur pour réaliser cette fonctionnalité.
Tout d'abord, nous définissons une interface de base pour les boissons au café :
public interface Coffee { double getPrice(); String getDescription(); }
Ensuite, nous implémentons une classe spécifique pour les boissons au café :
public class Espresso implements Coffee { @Override public double getPrice() { return 3.5; } @Override public String getDescription() { return "Espresso"; } }
Ensuite, nous définissons une classe abstraite de décorateur, qui implémente l'interface pour les boissons au café.
public abstract class CoffeeDecorator implements Coffee { private Coffee coffee; public CoffeeDecorator(Coffee coffee) { this.coffee = coffee; } @Override public double getPrice() { return coffee.getPrice(); } @Override public String getDescription() { return coffee.getDescription(); } }
Ensuite, nous pouvons mettre en place des classes de décorateurs spécifiques, comme un décorateur pour l'ajout de lait et un décorateur pour l'ajout de sirop.
public class MilkDecorator extends CoffeeDecorator { public MilkDecorator(Coffee coffee) { super(coffee); } @Override public double getPrice() { return super.getPrice() + 1.0; // 添加牛奶的价格 } @Override public String getDescription() { return super.getDescription() + ", Milk"; // 添加描述信息 } } public class SyrupDecorator extends CoffeeDecorator { public SyrupDecorator(Coffee coffee) { super(coffee); } @Override public double getPrice() { return super.getPrice() + 0.5; // 添加糖浆的价格 } @Override public String getDescription() { return super.getDescription() + ", Syrup"; // 添加描述信息 } }
Enfin, nous pouvons utiliser le motif décorateur pour créer différentes boissons au café. Par exemple, nous pourrions créer un expresso puis ajouter du lait et du sirop de manière récursive.
Coffee espresso = new Espresso(); Coffee coffeeWithMilkAndSyrup = new SyrupDecorator(new MilkDecorator(espresso)); System.out.println(coffeeWithMilkAndSyrup.getDescription()); System.out.println(coffeeWithMilkAndSyrup.getPrice());
Le résultat du code ci-dessus sera :
Espresso, Milk, Syrup 5.0
En utilisant le modèle de décorateur, nous pouvons ajouter de manière flexible des ingrédients aux boissons au café sans modifier la classe de boisson au café d'origine. De cette manière, nous pouvons étendre plus facilement les fonctions des boissons au café tout en améliorant la maintenabilité du code.
Un autre modèle de conception couramment utilisé est le modèle de stratégie, qui est un modèle de conception comportemental utilisé pour sélectionner la stratégie appropriée pour un algorithme au moment de l'exécution. Le modèle de stratégie encapsule l'algorithme dans des classes de stratégie indépendantes, puis utilise une classe de contexte pour sélectionner la stratégie appropriée à exécuter.
Ci-dessous, nous démontrons l'utilisation du modèle de stratégie à travers un exemple simple. Supposons que nous ayons une plate-forme de commerce électronique et que nous devions mettre en œuvre un système de paiement. Ce système de paiement doit prendre en charge plusieurs méthodes de paiement, telles que Alipay, WeChat Pay, etc. Nous pouvons utiliser le modèle de stratégie pour réaliser cette fonctionnalité.
Tout d'abord, nous définissons une interface de paiement :
public interface PaymentStrategy { void pay(double amount); }
Ensuite, nous implémentons la classe de stratégie de paiement spécifique :
public class AlipayStrategy implements PaymentStrategy { @Override public void pay(double amount) { System.out.println("Pay " + amount + " RMB via Alipay"); } } public class WechatPayStrategy implements PaymentStrategy { @Override public void pay(double amount) { System.out.println("Pay " + amount + " RMB via Wechat Pay"); } }
Ensuite, nous définissons une classe de contexte pour sélectionner la stratégie de paiement appropriée :
public class PaymentContext { private PaymentStrategy paymentStrategy; public void setPaymentStrategy(PaymentStrategy paymentStrategy) { this.paymentStrategy = paymentStrategy; } public void pay(double amount) { paymentStrategy.pay(amount); } }
Enfin, nous pouvons utiliser la stratégie Modèle pour mettre en œuvre un système de paiement. Par exemple, nous pouvons choisir le paiement Alipay ou le paiement WeChat.
PaymentContext context = new PaymentContext(); // 使用支付宝支付 context.setPaymentStrategy(new AlipayStrategy()); context.pay(100); // 使用微信支付 context.setPaymentStrategy(new WechatPayStrategy()); context.pay(200);
Le résultat de sortie du code ci-dessus sera :
Pay 100.0 RMB via Alipay Pay 200.0 RMB via Wechat Pay
En utilisant le modèle de stratégie, nous pouvons découpler la stratégie de paiement de la classe de contexte, ce qui rend plus pratique l'ajout et la modification de la stratégie de paiement, améliorant ainsi la maintenabilité et la sécurité. du code.
Pour résumer, le modèle décorateur et le modèle stratégie sont des outils efficaces pour nous aider à créer du code Java maintenable. Le modèle de décorateur peut nous aider à ajouter dynamiquement des fonctionnalités aux objets, tandis que le modèle de stratégie peut nous aider à choisir les algorithmes appropriés au moment de l'exécution. Comprendre les avantages et les scénarios applicables de ces deux modes, et maîtriser leurs méthodes de mise en œuvre spécifiques, nous aidera à écrire un code plus maintenable.
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)

Réaliser des effets d'animation d'amour grâce au code Java Dans le domaine de la programmation, les effets d'animation sont très courants et populaires. Divers effets d'animation peuvent être obtenus grâce au code Java, dont l'effet d'animation cardiaque. Cet article expliquera comment utiliser le code Java pour obtenir cet effet et donnera des exemples de code spécifiques. La clé pour réaliser l'effet d'animation du cœur est de dessiner le motif en forme de cœur et d'obtenir l'effet d'animation en changeant la position et la couleur de la forme du cœur. Voici le code pour un exemple simple : importjavax.swing.

Comment concevoir une structure de table MySQL maintenable pour implémenter la fonction de réservation en ligne ? Dans la vie quotidienne, de plus en plus de personnes choisissent les services de rendez-vous en ligne. Qu'il s'agisse de prendre rendez-vous avec un médecin, de prendre rendez-vous pour un repas, de prendre rendez-vous dans un lieu, etc., un système de rendez-vous en ligne fiable et efficace est crucial pour fournir des services de qualité. Avant de concevoir une structure de table MySQL maintenable pour implémenter la fonction de réservation en ligne, vous devez considérer les aspects suivants : Tout d'abord, nous devons créer une table pour stocker les informations utilisateur. Ce tableau contiendra le nom de l’utilisateur, son numéro de téléphone, son adresse e-mail, etc.

Comment appeler l'API Amap via du code Java pour implémenter le calcul de la distance parcourue. À mesure que la demande des gens concernant les conditions de circulation et la navigation en temps réel augmente, la planification d'itinéraires sur carte devient de plus en plus importante. En tant que principal fournisseur de services cartographiques en Chine, la fonction de planification d'itinéraire d'Amap est privilégiée par la majorité des développeurs. Cet article explique comment appeler l'API Amap via du code Java pour implémenter le calcul de la distance du chemin. L'API Amap fournit une série d'interfaces riches, notamment le géocodage, le géocodage inversé, la planification d'itinéraire et d'autres fonctions. Dans cet article, nous nous concentrerons sur

Le modèle de stratégie dans le framework Java est utilisé pour modifier dynamiquement le comportement des classes. Les applications spécifiques incluent : Framework Spring : validation des données et gestion du cache Framework JakartaEE : gestion des transactions et injection de dépendances Framework JSF : convertisseurs et validateurs, gestion du cycle de vie des réponses.

Interprétation de la documentation de l'API Amap : le code Java implémente la requête d'informations sur les arrivées de bus en temps réel. Avec la popularité des smartphones et le développement des transports urbains, les déplacements en bus sont devenus un élément indispensable de la vie urbaine moderne. En tant que principal fournisseur de services de cartographie en Chine, Amap fournit des fonctions d'informations sur les bus très puissantes et peut interroger des informations sur l'arrivée des bus en temps réel. Cet article présentera comment implémenter cette fonction en interprétant la documentation de l'API Amap et en fournissant des exemples de code Java. Tout d'abord, nous devons comprendre l'API Amap

Comment appeler l'API Amap via du code Java pour implémenter la fonction de planification d'itinéraire La navigation sur carte est devenue l'une des fonctions essentielles de notre vie quotidienne. Dans les applications mobiles modernes, de nombreuses applications intègrent des fonctions de planification d'itinéraire pour aider les utilisateurs à trouver facilement l'itinéraire optimal en voiture, à pied ou en transports en commun. L'API Amap fournit des interfaces et des fonctions riches pour permettre aux développeurs de mettre en œuvre facilement des fonctions de navigation cartographique. Cet article explique comment appeler l'API Amap via du code Java pour implémenter la fonction de planification d'itinéraire. Tout d'abord, nous devons enregistrer Amap

Python et Java sont deux langages de programmation largement utilisés dans l'industrie du développement de logiciels. Ils présentent chacun une série d’avantages et d’inconvénients et conviennent à différents types de projets. Python est connu pour sa facilité d'utilisation et sa lisibilité, tandis que Java est connu pour sa robustesse et ses performances. L'une des principales différences entre Python et Java réside dans la manière dont ils sont écrits. Python a une syntaxe plus souple qui facilite l'écriture et la compréhension du code, tandis que Java a une syntaxe plus stricte qui peut rendre l'écriture et la compréhension du code quelque peu difficiles. Malgré ces changements, de nombreux développeurs se retrouvent dans une situation où ils doivent convertir du code Python en code Java, par exemple pour travailler sur un projet nécessitant Java.

Exemple de code Java : Utilisation de l'interface Alibaba Cloud DTS pour réaliser la synchronisation des bases de données Introduction : Avec le développement rapide du cloud computing et du big data, la synchronisation des bases de données est devenue l'un des besoins indispensables de nombreuses entreprises. Le service de transfert de données (DTS) d'Alibaba Cloud fournit de puissantes fonctions de synchronisation de bases de données, qui peuvent aider les entreprises à réaliser rapidement et efficacement la synchronisation des données entre différentes bases de données. Cet article explique comment utiliser l'interface Alibaba Cloud DTS pour réaliser la synchronisation de la base de données et fournit des exemples de code Java correspondants. 1. Préparation : Avant de commencer, nous devons
