策略模式(分离职责,选择实现)

策略模式是一种设计模式,它将一系列算法封装起来,允许在运行时动态选择和切换。通过分离职责和解耦,实现了算法的独立性和客户端的灵活性。此模式消除了条件语句,遵循开闭原则,但在增加新策略时会创建更多类。常见应用场景包括根据不同条件选择不同算法。代码示例中展示了如何应用策略模式解决旅行问题,如选择自行车、小车或火车出行方式。
摘要由CSDN通过智能技术生成


1 定义

定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。使得算法独立于>他的客户端程序而变化.

2 本质与要点

本质:分离职责,动态组合
要点:
策略模式提供了以系列可重用的算法,从而可以使得类型在运行时候方便的根据需要之>间进行切换
消除条件判断语句,解耦和
充分体现了开闭原则,单一职责

3 类图

在这里插入图片描述

4 优缺点

优点:
1 各自使用封装的算法,可以很容易引入新的算法来满足相同的接口
2 由于事先的同一个接口,所以策略之间可以自由切换
3 客户端能够选择所需要的算法,无需使用swithc、case或if/esle
4 算法细节完全封装在strategy类中,因此,可以不影响context类的情况下更改实现
缺点:
1 客户端需要知道所有的策略,了解他们的区别
2 策略模式将造成很多策略类

5 使用场景

1 多个类有不同的表现形式,每种表现形式可以独立成单独的算法
2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

丰恒谷

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

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

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

打赏作者

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

抵扣说明:

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

余额充值