政策模式即設計不同的政策應用于不同的實作上。
代碼實作如下:
//動物
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("哞哞。。。。");
}
}