學習更多設計模式請參考:入門設計模式之彙總篇 狀態模式:允許一個對象在其內部狀態改變時改變其行為。 舉一個簡單的小例子,我們在對一個小姐姐搭訕的時候,根據小姐姐的心情如何我們可能會得到不同的回覆。 看一下類圖 看一下代碼: 如此,Boy持有不同狀態的Girl對象時獲取的回覆是不同的,這樣就實現了一個 ...
學習更多設計模式請參考:入門設計模式之彙總篇
狀態模式:允許一個對象在其內部狀態改變時改變其行為。
舉一個簡單的小例子,我們在對一個小姐姐搭訕的時候,根據小姐姐的心情如何我們可能會得到不同的回覆。
看一下類圖
- Girl:抽象狀態介面:用於封裝男孩對象搭訕小姐姐獲得回覆的介面
- AngryGirl、HappyGirl:兩個狀態實現類。不同的狀態就對應了男孩在不同時刻獲得的回覆。
- Boy:持有一個狀態實例。
看一下代碼:
public interface Girl {
public void say();
}
public class AngryGirl implements Girl {
@Override
public void say() {
System.out.println("滾");
}
}
public class HappyGirl implements Girl {
public void say(){
System.out.println("你好哦,小哥哥");
}
}
public class Boy {
private Girl girl;
public void say(){
this.girl.say();
}
public void setGirl(Girl girl){
this.girl=girl;
}
}
如此,Boy持有不同狀態的Girl對象時獲取的回覆是不同的,這樣就實現了一個簡單的狀態模式。
本文出自https://zhixiang.org.cn/#/blog/read/ccfb4d18-3b6c-4a35-a238-7b19fafe73a1,轉載請保留。