《Java 设计模式精讲》笔记——第19章 策略模式

本文是学习《Java 设计模式精讲》的笔记,详细介绍了策略模式的概念、适用场景、优缺点,并通过一个双11促销活动的例子展示了如何在代码中实现策略模式,强调了它在动态选择算法和避免if...else...语句中的作用。
摘要由CSDN通过智能技术生成

声明:

本博客是本人在学习《Java 设计模式精讲》后整理的笔记,旨在方便复习和回顾,并非用作商业用途。

本博客已标明出处,如有侵权请告知,马上删除。

1. 策略模式讲解

  • 定义:定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的用户
  • 可以用于消除大量 if…else…
  • 类型:行为型
  • 适用场景
    • 系统有很多类,而他们的区别仅仅在于他们的行为不同
    • 一个系统需要动态地在几种算法中选择一种
  • 优点
    • 开闭原则
    • 避免使用多重条件转移语句
    • 提高算法的保密性和安全性
  • 缺点
    • 客户端必须知道所有的策略类,并自行决定使用哪一个策略类。
    • 产生很多策略类
  • 相关设计模式
    • 策略模式和工厂模式
      • 工厂模式是创建型的,策略模式是行为型的
      • 工厂模式是创建出符合要求的对象,策略模式接受已经创建好的对象,从而实现不同的行为
    • 策略模式和状态模式
      • 策略模式中客户端必须知道所选择策略,状态模式中客户端不需要关心具体状态

2. 策略模式 Coding

下面实现一个业务场景:比如在双 11 和 618 的时候,都会有促销活动,不同的促销活动可能会不同的促销策略,比如立减,满减,返现等实现方式。

  1. 创建促销策略接口

    public interface PromotionStrategy {
         
        void doPromotion();
    }
    
  2. 创建满减策略,实现促销策略接口

    public class ManJianPromotionStrategy implements 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bm1998

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

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

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

打赏作者

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

抵扣说明:

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

余额充值