《JAVA 与模式》之策略模式
在阎宏博士的《JAVA 与模式》一书中开头是这样描述策略(Strategy)模式的:
策略模式属于对象的行为模式。其用意是针对一组算法,将每一个算法封装到具有共
同接口的独立的类中,从而使得它们可以相互替换。策略模式使得算法可以在不影响到客
户端的情况下发生变化。
策略模式的结构
策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的
对象管理。策略模式通常把一个系列的算法包装到一系列的策略类里面,作为一个抽象策
略类的子类。用一句话来说,就是:“准备一组算法,并将每一个算法封装起来,使得它们
可以互换”。下面就以一个示意性的实现讲解策略模式实例的结构。
这个模式涉及到三个角色:
● 环境(Context)角色:持有一个 Strategy 的引用。
● 抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。
此角色给出所有的具体策略类所需的接口。
● 具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。
源代码
环境角色类
public class Context {
//持有一个具体策略的对象
private Strategy strategy;
评论0