一 概念
策略模式:策略模式是将对象和行为拆分开来, 然后行为可以归类到一类算法中,每一种行为实现同一个公共接口,然后在各自的行为类上去实现各自的接口。
二 策略模式实战
策略模式示例如下:
策略模式的实现步骤一般是定义一个行为接口,然后让各种不同的行为去实现这个接口,然后由对象通过调用行为方法传入对应的行为,从而达到对实现该行为。
举个例子如下:
每个人都要吃饭,可能每餐吃的食物不一样,在这个示例中,人作为一个对象,而吃饭则是一种行为。那么我们可以把eat设计成一个方法,然后食物可以设计成一个接口
各种食物都来实现这个接口。实现如下:
策略模式的代码演示如下:
1 先定义一个Person类:
public class Person{
public void eat(Food food) {
// TODO Auto-generated method stub
System.out.println("我吃的是:" +food.display() );
}
}
2 提供一个Food接口
public interface Food {
public String display();
}
3 编写Meal 和 Humburger类实现Food接口
public class Meal implements Food{
@Override
public String display() {
return "大米";
}
}
public class Hamburger implements Food{
@Override
public String display() {
return "汉堡包";
}
}
4 编写测试代码
public class StrategyTest {
public static void lunch(Person human, Food food){
human.eat(food);
}
public static void main(String[] args){
Person old = new Person();
Meal meal = new Meal();
Hamburger hamburger = new Hamburger();
lunch(old, meal);
lunch(old, hamburger);
}
}