天天看點

設計模式之政策模式

政策模式即設計不同的政策應用于不同的實作上。

代碼實作如下:

//動物
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("哞哞。。。。");
    }
}           

繼續閱讀