java策略模式

什么是策略模式

春节回家我们可以选择步行、骑行、火车、飞机、火箭等等方式;每个出行方式具体实现方式和体验都是有差异的,但是最终我们都可以到家。一句话:殊途同归。
有了这个例子,我相信你应该对其思想有了一个基本的认识,下面看一下其正式的概念介绍:

定义一系列的算法,把每一个算法封装起来, 并且使它们可相互替换

为什么要使用策略模式

举个简单的例子,春节回家我们可以选择步行、骑行、火车、飞机、火箭等等方式;每个出行方式具体实现方式和体验都是有差异的,那么之前我们的代码可能是这样:

public void goHome(int type) {
   
        if (type == 1) {
   
            System.out.println("步行回家...");
        }
        if (type == 2) {
   
            System.out.println("高铁回家...");
        }
        if (type == 3) {
   
            System.out.println("飞机回家...");
        }
    }

这种方式实现起来代码耦合度高,代码也略显臃肿;

反过来讲也就是实用策略模式的优点:

  • 我们之前在选择出行方式的时候,往往会使用if-else语句,也就是用户不选择A那么就选择B这样的一种情况。这种情况耦合性太高了,而且代码臃肿,有了策略模式我们就可以避免这种现象,
  • 策略模式遵循开闭原则,实现代码的解耦合。扩展新的方法时也比较方便,只需要继承策略接口就好了

策略模式简单应用

策略模式把对象本身和运算规则区分开来,因此我们整个模式也分为三个部分:

  • 抽象策略类(Strategy):策略的抽象,出行方式的抽象;
  • 具体策略类(ConcreteStrategy):具体的策略实现,每一种出行方式的具体实现;
  • 具体应用入口类;

第一步: 定义抽象策略类

public interface  TravelStrate
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值