设计模式——策略模式

博客介绍了策略模式,其定义为封装一系列可相互替换的算法。适用场景包括相关类行为不同、需算法变体等。类图未详细展示。优点有算法可重用、易拓展等;缺点是主体需了解算法、通信固定、可能引入大量实现类。

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

定义:定义一系列算法,将他们封装起来,并使他们可以相互替换。

场景:

  1. 许多相关的类仅仅是行为有异
  2. 需要使用同一个算法的不同变体
  3. 算法使用主体不应该知道的数据
  4. 一个类定义了多种行为,并且这些行为在这个类的操作中以多个条件语句的形式出现

类图:

    图像来自《设计模式之禅》

优点:

  1. 使得算法可重用
  2. 使用组合代替继承,易于拓展
  3. 消除了大量的条件语句
  4. 同一个算法可以有不同的实现

缺点:

  1. 主体必须了解不同的算法
  2. 不同的算法可能需要不同的参数,但是主体和算法之间的通信是固定不变的
  3. 可能引入大量的算法实现类

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值