(设计模式)策略

策略模式:针对不同的情况和场景,使用相应的处理策略。不同的策略,处理的逻辑各不相同。

例如;在 JDK 的线程池配置参数里面,就有一个拒绝策略的参数。这个拒绝策略是线程池最后保险机制,一旦线程池处理请求达到饱和就会触发拒绝策略,而线程池默认的拒绝策略就是丢弃策略(AbortPolicy),除此之外还有另外三种策略,如下图:

image

这四种拒绝策略实现 RejectedExecutionHandler 接口,该接口定义了一个 rejectedExecution 方法,所有具体拒绝策略就在该方法实现具体的逻辑。如下:

image

在线程池的参数中,就是使用 RejectedExecutionHandler 作为参数类型:

image

结合里氏替换原则和多态特性,线程池可以传入所有 RejectedExecutionHandler 的子类,并表现出不同的拒绝行为。

模式分析:

1、根据不同场景和情况,制定不同的策略来处理。在代码层面体现就是:一个类对应一个策略,结合里氏替换和多态,就可以避免用 if-else 来集中处理各种情况。

本篇文章由一文多发平台ArtiPub自动发布

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值