国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

狀態模式

2019-11-08 02:21:32
字體:
來源:轉載
供稿:網友
 class OldWork{     public int getHour() {         return hour;     }     public void setHour(int hour) {         this.hour = hour;     }     PRivate int hour;     public void WriteProgram(){         if(hour<12){           System.out.println("forenoon ,good!");         }else if(hour<13){           System.out.println("need sleep!");         }else if(hour<17){           System.out.println("afernoon,go on!");         }     }  }
在沒有使用狀態模式時,會出現大量的if  else語句。使用后:
 class  Work{      private  State current;      public void setCurrent(State current) {          this.current = current;      }      public Work(){ current=new ForenoonState();}      public int getHour() {          return hour;      }      public void setHour(int hour) {          this.hour = hour;      }      private int hour;      public void WriteProgram(){          current.WriteProgram(this);      }  }  abstract class State{      public abstract void WriteProgram(Work w);  }  class ForenoonState extends State{       public void WriteProgram(Work w){        if(w.getHour()<12){            System.out.println("forenoon ,good!");        }       else{            w.setCurrent(new NoonState());w.WriteProgram();        }      }  }class NoonState extends State{    public void WriteProgram(Work w){        if(w.getHour()<13){            System.out.println("need sleep!");        }        else{            w.setCurrent(new AfternoonState());w.WriteProgram();        }    }}class AfternoonState extends State{    public void WriteProgram(Work w){        if(w.getHour()<17){            System.out.println("afernoon,go on!");        }        else{            System.out.println("go home,tired!");        }    }}
測試代碼:
public class TestState {  public static void main(String[] args){     Work work=new Work();      work.setHour(12);      work.WriteProgram();  }}輸出:need sleep!
狀態模式:當一個對象的內在狀態改變時允許改變其行為。這個對象看起來像是改變了其類。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 梁平县| 化州市| 溧阳市| 弥渡县| 林口县| 二手房| 句容市| 洛阳市| 永昌县| 景泰县| 佳木斯市| 师宗县| 辽阳市| 泰州市| 酉阳| 伊春市| 永川市| 鹤壁市| 四会市| 临汾市| 南华县| 海盐县| 开化县| 黎川县| 定远县| 临海市| 丹阳市| 河南省| 萨迦县| 称多县| 伊宁县| 马边| 益阳市| 丹凤县| 仁怀市| 德化县| 绵阳市| 二连浩特市| 东平县| 盐亭县| 彭州市|