什么是策略模式?
策略模式定义了一系列算法,并将每个算法封装起来,使他们可以相互替换,且算法的变化不会影响到使用算法的客户。需要设计一个接口,为一系列实现类提供统一的方法,多个实现类实现该接口,设计一个抽象类(可有可无,属于辅助类),提供辅助函数。
策略模式定义和封装了一系列的算法,它们是可以相互替换的,也就是说它们具有共性,而它们的共性就体现在策略接口的行为上,另外为了达到最后一句话的目的,也就是说让算法独立于使用它的客户而独立变化,我们需要让客户端依赖于策略接口。
一种很简单的解释,在我们的开发过程中,经常会遇到大量的if…else或者switch…case语句,当这些语句在开发中只是为了起到分流作用,这些分流和业务逻辑无关,那么这个时候就可以考虑用策略模式。
实例分析
出行方式选择-----旅行选择出行工具有自行车,火车,或飞机等交通工具。
类图分析
代码实现
接口类:TravelStrategy
package StrategyPattern; //策略模式之出行方式选择 public interface TravelStrategy { public void travel(); } 12345678
飞机类:
package StrategyPattern; public class AirplaneStrategy implements TravelStrategy 12