一、引言 今天我們開始講“行為型”設計模式的第六個模式,該模式是【狀態模式】,英文名稱是:State Pattern。無論是現實世界,還是面向對象的OO世界,里面都有一個東西,那就是對象。有對象當然就有狀態了。每個對象都有其對應的狀態,而每個狀態又有對應一些相應的行為,在不同狀態下,行為 ...
狀態模式 State 人有喜怒哀樂,海綿寶寶也會有不同的時候,也會有不同的心情 問題:上圖中,如果跟海綿寶寶開玩笑,那種情況最可能被打 看下面一個示例,演示了java中的多態特性 類A有方法action 類B繼承了A 覆蓋了方法action 類C繼承了A 覆蓋了方法action 類型都是A,但是卻因為內部的具體的子類類型不一樣,結果不一樣 海綿寶寶在不同心情狀態下,對同一件事情的處理態度可能是不 ...
2018-12-21 13:21 0 2074 推薦指數:
一、引言 今天我們開始講“行為型”設計模式的第六個模式,該模式是【狀態模式】,英文名稱是:State Pattern。無論是現實世界,還是面向對象的OO世界,里面都有一個東西,那就是對象。有對象當然就有狀態了。每個對象都有其對應的狀態,而每個狀態又有對應一些相應的行為,在不同狀態下,行為 ...
設計模式 --行為型 范圍\目的 創建型模式 結構型模式 行為型模式 類模式 工廠方法模式 (類)適配器模式 解釋器模式 模板方法模式 對象 ...
在閻宏博士的《JAVA與模式》一書中開頭是這樣描述狀態(State)模式的: 狀態模式,又稱狀態對象模式(Pattern of Objects for States),狀態模式是對象的行為模式。 狀態模式允許一個對象在其內部狀態改變的時候改變其行為。這個對象看上去就像是改變 ...
設計模式:狀態(State)模式 一、前言 狀態模式在某些場合中使用是非常方便的,什么叫做狀態,如果大家學過《編譯原理》就會明白DFA M和NFA M,在確定有限狀態機和非確定有限狀態機中,狀態就是最小的單元,當滿足某種條件的時候,狀態就會發生改變,我們可以把時間中的一個時刻當做 ...
狀態模式: 根據狀態決定動作 當動作一定但是狀態可擴展適合使用狀態模式 當動作變化不適合 當狀態不會擴展也沒有必要使用使用傳統的switch即可。 先看一個沒有使用狀態模式的例子: 使用狀態模式之后代碼如下: 寫到這里當我女朋友添加一種新 ...
狀態模式允許對象在內部狀態改變時改變它的行為,對象看起來好像修改了他的類。適用場景:一個對象的行為取決於他的狀態,並且它必須在運行時根據狀態改變它的行為;一個操作中含有龐大的多分支結構,並且這些分支決定於對象的狀態。類圖: 模式的組成:環境類Context: 定義客戶感興趣的接口。維護一個 ...
一、引言 今天我們開始講“行為型”設計模式的第八個模式,該模式是【職責鏈模式】,英文名稱是:Chain of Responsibility Pattern。讓我們看看現實生活中的例子吧,理解起來可能更容易。我們看看某公司的采購流程吧。某公司的規章制度規定,采購原材料的總價在5萬之內,只需要 ...
者模式。 面向對象的程序設計中,我們通常將功能進行分解,按照職責以類為維 ...