策略模式即设计不同的策略应用于不同的实现上。
代码实现如下:
//动物
public abstract class Animal
{
private Behavior behavior;//让animal和behavior组合起来
//可调用set方法来给每种不同的动物加不同的行为
public void setBehavior(Behavior behavior){
this.behavior = behavior;
}
public void talk(){
behavior.speak();//让行为动起来
}
}
//各种动物的实现
class Dog extends Animal{}
class Cat extends Animal{}
class Fog extends Animal{}
class Ox extends Animal{}
//行为接口
public interface Behavior{
void speak();
}
//定义各种行为
class DogSpeaking implements Behavior
{
public void speak(){
System.out.println("汪汪。。。。");
}
}
class CatSpeaking implements Behavior
{
public void speak(){
System.out.println("喵喵。。。。");
}
}
class FogSpeaking implements Behavior
{
public void speak(){
System.out.println("呱呱。。。。");
}
}
class OxSpeaking implements Behavior
{
public void speak(){
System.out.println("哞哞。。。。");
}
}