设计模式之策略模式在业务中的使用

本文介绍了策略模式的基本概念,如何在Java中通过定义策略接口、具体策略类和上下文来实现在运行时切换算法。通过实例展示了如何通过策略模式避免if-else判断,提升代码可维护性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,什么是策略模式

策略模式(Strategy Pattern)是一种常用的设计模式,属于行为型模式。它允许在运行时选择算法或操作的策略,通过定义一系列算法,并将每一个算法封装起来,使它们可以互相替换。策略模式让算法的变化独立于使用算法的客户端。

简单来说,策略模式是多态的一种体现,我个人认为不同与多态的点在于策略模式比多态多了一个“中转站”上下文这么一个东西。通过这个上下文,我们才能够灵活的实现具体业务中需要的哪一个策略,就调用哪个策略,摆脱多if的烦恼,所以它是一个很重要的角色。

主要组成部分

策略模式主要包含三个角色:

  1. Context(上下文):用来维护对当前选定策略对象的引用。
  2. Strategy(策略接口):定义所有支持的算法的公共接口。Context使用这个接口来调用某ConcreteStrategy定义的算法。
  3. ConcreteStrategy(具体策略):实现Strategy接口的类,提供具体的算法实现。
     

二,具体案例

先看一代码结构,这里的我单独拿出一个包,避免与其它业务类混在一起。

不多说,直接上代码。这里我需要通过产品ID和产品类型去查询卖家ID,因为产品类型的不同,那位我就需要根据传递的类型去做

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值