【设计模式系列2】如何使用策略模式替换编程中大量的if判断(1)

本文介绍了如何在编程中用策略模式替代复杂的if-else判断。通过创建PayStrategy接口和实现类,如AliPayStrategy和WechatPayStrategy,演示了如何在测试类中根据前端传递的支付类型动态选择支付策略。进一步,通过枚举类PayEnum实现策略的选择,增强了代码的可维护性和扩展性。策略模式有利于遵循开闭原则,避免条件转移语句,提高逻辑的保密性和安全性。
摘要由CSDN通过智能技术生成

import java.math.BigDecimal;

public interface PayStrategry {

boolean pay(int money);//支付

BigDecimal queryBalance(String accountNo);//查询余额

}

2、接下来定义2个实现类示例

import com.zwx.design.pattern.PayStrategy;

import java.math.BigDecimal;

public class AliPayStrategy implements PayStrategy {

@Override

public boolean pay(int money) {

System.out.println(“支付宝支付成功”);

return true;

}

@Override

public BigDecimal queryBalance(String accountNo) {

System.out.println(“支付宝余额10元”);

return new BigDecimal(10);

}

}

import com.zwx.design.pattern.PayStrategy;

import java.math.BigDecimal;

public class WechatPayStrategy implements PayStrategy {

@Override

public boolean pay(int money) {

System.out.println(“微信支付成功”);

return true;

}

@Override

public BigDecimal queryBalance(String accountNo) {

System.out.println(“微信余额10元”);

return new BigDecimal(10);

}

}

3、接下来我们来测试一下

import com.zwx.design.pattern.impl.AliPayStrategy;

import com.zwx.design.pattern.impl.WechatPayStrategy;

public class TestPayStrategy {

public static void main(String[] args) {

String pay = “aliPay”;

PayStrategy payStrategy = null;

if(pay.equals(“aliPay”)){

payStrategy = new AliPayStrategy();

}else if(pay.equals(“wechatPay”)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值