【设计模式】一文读懂策略模式

前言

学习设计模式不仅仅是炫技,还可以让你 在看各种代码时如鱼得水。碰到一些典型的设计模式,还会惊讶于Coder的设计。

今天来分享设计模式中的策略模式,也是最近在实习中看到的。

其实策略模式在项目中的应用很多,封装不同的算法,然后只需要调用即可,这样即使你不会设置一些算法(策略),但是你可以拿到别人设计好的策略开箱即用。

什么是策略模式?

就像之前说的,策略模式会定义一系列算法,或者叫做策略 - Strategy。每个算法会独立封装在特定的类中,使用哪个策略,直接调用替换即可。注意:替换的过程是在运行中动态完成的,不需要修改客户端代码。

  • 策略模式的组成部分
    • 抽象策略(Strategy):定义了所有策略类必须实现的接口或抽象类。
    • 具体策略(Concrete Strategy):实现了抽象策略定义的接口或抽象类,包含具体的算法实现。
    • 环境(Context):维护一个对策略对象的引用,并通过该引用调用策略。

一般我们的具体策略可以通过工厂模式来生产:策略对象。我们想要调用什么策略,就从工厂拿哪个策略即可。

谁去调用这个策略呢?可以维护一个Map。key就是我们的触发策略条件,value就是我们具体的策略;

接下来我们来看一个代码具体分析策略模式的作用:

策略模式核心实践

// 抽象策略接口
public interface Strategy {
   
    public int doOperation(int num1, int num2);
}

// 具体策略类A
public class OperationAdd implements Strategy {
   
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sivan_Xin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值