设计模式: 真正理解策略模式(Strategy)

策略模式详解
本文详细介绍了策略模式的概念及其应用场景,解析了策略模式如何帮助系统在运行时动态地选择和切换算法,降低了客户端与算法间的耦合度。

基本概念

算法:计算机处理问题的方法,
策略:策略即算法实现对象中行为的方式

Strategy模式的应用场景一般是:
- 具有多种可能需要实现的算法
- 需要在程序中对算法进行动态切换
-对象的行为需要根据上下文动态的改变。可以考虑使用策略模式.

如:加密有一个加密算法,加密算法有很多种,比如MD5,DES等,我们的程序需要实现

这个功能,就是可以让用户选择不同的加密算法进行加密。

官方定义:Strategy模式定义一个算法族,并把每一种可能的算法封装成一个类,这些算法可以在应用程序内部被动态替换。此模式让算法的变法不会影响到使用算法的客户。

解析策略模式

当对象的某个行为有多种实现方式时,为了把所有这些实现方式的变化对现有系统的影

响降到最低。当有新的需求时可以对扩展开发对修改关闭。可以把该行为抽象为一个接

口或抽象类,然后由它的子类来完成不同方式的实现。而使用该行为的对象,通过引用

该超类型的变量,来把对它的请求委托给该行为的抽象来完成。由于实际完成该功能

的对象是一个超类型所以他们运行时引用的对象可以为任何它的子类型。即通过这种多

态的机制可以在运行时动态指定执行所需要的实现方式也可以说成实现是策略.策略模式可以降低客户端与算法之间的耦合关系。

策略模式要点:

Strategy模式重在外部对策略(算法)的选择,策略的选择由外部条件决定,也就是说算法的动态的切换。
Strategy模式中只有具有继承关系的算法类
Strategy模式从类的角度,对整个算法加以封装

转载于:https://www.cnblogs.com/rentj1/archive/2009/01/17/1377401.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值