一、定义
策略模式针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。
策略模式使得算法可以在不影响到客户端的情况下发生变化。
策略模式 ,可以理解为 针对实现同一接口的不同的类,采用不同的算法。比如,面对高级会员、初级会员会采用不同的折扣。
策略模式,可以避免大量的if和else.
二、角色
策略模式涉及到三个角色:
● 环境(Context)角色:调用策略
● 抽象策略(Strategy)角色:抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。
● 具体策略(ConcreteStrategy)角色:实现抽象策略接口,包装了相关的算法或行为。
参考博客:http://www.cnblogs.com/java-my-life/archive/2012/05/10/2491891.html