常用设计模式-策略模式

定义:是指定义了算法家族,分别封装起来,让他们之间可以相互替换,此模式让算法的变化不会影响到使用算法的用户。

可以避免多重分支的if else 语句和 switch语句

适用场景:

  1. 假如系统中有很多类,而他们的区别仅仅在于他们的行为不同。
  2. 一个系统需要动态的在几种算法中选择一种。

优点:

  1. 策略模式符合开闭原则
  2. 避免使用多重 条件转移语句,如if..else..语句、switch语句
  3. 使用策略模式可以提高算法的保密性和安全性

例如 以支付为例:

我们有支付宝支付,微信支付,京东白条,银联支付,他们的行为不同但是结果一样,都是付账

所以我们可以使用策略模式选择不用的支付方式

首先我们可以将将他们的共同点抽象出来,建立支付抽象类

支付结果返回类:

接下来我们建立不同的支付方式,

现在我们有了支付方式,那么我们现在就要有选择支付方式的策略

 

接下来,我们肯定需要通过下订单后来选择支付方式:

这里我们简单写一下 一个订单类 有一个支付方法

我们可以测试一下:

在spring 中,也用到了大量的策略模式:InstantiationStragegy这个是选择Bean初始化的类

总结:

       通过策略模式我们就不需要写if  else方式 来选择不同的支付方式,并且也易于维护后续需求,我们只需要传输不同的支付方式就行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值