国产探花免费观看_亚洲丰满少妇自慰呻吟_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!
狀態模式:當一個對象的內在狀態改變時允許改變其行為。這個對象看起來像是改變了其類。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 井陉县| 梅河口市| 莱州市| 平定县| 铁岭市| 睢宁县| 温泉县| 武陟县| 上林县| 荥经县| 兴海县| 太原市| 阿尔山市| 信阳市| 佛冈县| 公安县| 颍上县| 阿克陶县| 忻城县| 偏关县| 静乐县| 无锡市| 翁源县| 子长县| 平山县| 门源| 和顺县| 仙居县| 思南县| 习水县| 昭平县| 常宁市| 滕州市| 偏关县| 淅川县| 满城县| 天台县| 芮城县| 芮城县| 日土县| 高淳县|