前言:
眼前看官们对“java银行卡支付功能怎么实现”大致比较看重,看官们都想要分析一些“java银行卡支付功能怎么实现”的相关文章。那么小编在网络上网罗了一些有关“java银行卡支付功能怎么实现””的相关知识,希望小伙伴们能喜欢,看官们一起来学习一下吧!定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用此算法的客户。
类型:
行为型设计模式
适用场景:
比如电商平台的一些常见活动(促销、满减、立减、返现等)。
我们还可以这样理解,在一个系统中有很多类,其区别在于行为不同,策略模式可以让某个对象动态的选择某个行为(也就是某个策略)
策略还可以理解为运算符的+ - * / ,旅行时所要乘坐的交通工具,穿衣时所要选择的衣服...等等等
优点
符合开闭原则
减少if..else等选择结构语句
缺点
客户必须知道所有的策略类,并选择要使用的策略
产生许多策略类
代码实现
定义Payment.java接口文件
public interface Payment { public void pay();}
创建具体支付策略并实现Payment接口
Alipay.java策略
public class Bankcard implements Payment { @Override public void pay() { System.out.println("使用银行卡付款"); }}
Bankcard.java策略
public class Bankcard implements Payment { @Override public void pay() { System.out.println("使用银行卡付款"); }}
Wechatpay.java策略
public class Wechatpay implements Payment { @Override public void pay() { System.out.println("使用微信支付"); }}
创建PaymentSystem.java类封装具体策略
public class PaymentSystem { private Payment payment; public PaymentSystem(Payment payment) { this.payment = payment; } public void execute(){ payment.pay(); }}
Client.java类 客户调用
public class Client { public static void main(String[] args) { PaymentSystem paymentSystem=null; String paymentType="alipay"; if("alipay".equalsIgnoreCase(paymentType)){ paymentSystem=new PaymentSystem(new Alipay()); }else if("bankcard".equalsIgnoreCase(paymentType)){ paymentSystem=new PaymentSystem(new Bankcard()); }else if("wechatpay".equalsIgnoreCase(paymentType)){ paymentSystem=new PaymentSystem(new Wechatpay()); } paymentSystem.execute(); }}
Client类中使用paymentType变量模拟具体配置,然后通过if..else来实现具体的策略
UML类图
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #java银行卡支付功能怎么实现