Maison  >  Article  >  Java  >  Comment utiliser le modèle de stratégie Java pour remplacer if else

Comment utiliser le modèle de stratégie Java pour remplacer if else

王林
王林avant
2023-05-13 18:34:141408parcourir

Arrêtez d'utiliser beaucoup de if else, le code est trop simple et la lisibilité est trop mauvaise.

La définition du modèle de stratégie

....

En termes simples, chaque module est indépendant les uns des autres et n'affecte pas les uns les autres pour améliorer la lisibilité du code. Évolutivité !

Par exemple, le mauvais code suivant

if ("花呗支付".equals(type)) {
 
	// 花呗支付的业务逻辑处理
 
} else if ("微信支付".equals(type)) {
 
	// 微信支付业务逻辑
 
} else if ("云闪付".equals(type)) {
 
	// 云闪付支付业务逻辑
 
} else if ("...".equals(type)) {
			
    // ....
}

Réflexion : Vous pouvez définir une interface de paiement, un mode de paiement, écrire différentes classes d'implémentation pour différents modes de paiement, ne pas interférer avec chacun. Les autres, ne s'affectent pas et ajoutent de nouveaux modes de paiement à l'avenir. Ajoutez simplement une nouvelle classe d'implémentation pour implémenter l'interface de paiement et réécrivez son mode de paiement. Pas besoin de modifier le code précédemment écrit.

Il m'est arrivé de l'utiliser. modèle de conception lors de la saisie du code aujourd'hui. Permettez-moi de le partager brièvement

définir l'interface

如何使用Java策略模式取代if else

Définir différentes classes d'implémentation

如何使用Java策略模式取代if else

Chaque classe d'implémentation gérera sa propre activité, n'interférera pas les unes avec les autres et est isolés l'un de l'autre. Par exemple, les deux classes d'implémentation suivantes implémentent la même interface pour gérer différentes entreprises

如何使用Java策略模式取代if else

如何使用Java策略模式取代if else

Définir l'interface

如何使用Java策略模式取代if else

N'est-ce pas beaucoup plus simple que beaucoup de if else~

Extrayez chaque module différent, récupérez la classe d'implémentation de l'interface via le nom du bean et exécutez la méthode

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