設計模式之
state
——交通篇
「小朋友過馬路,左右看,紅燈停,綠燈行,阿姨誇我是乖寶寶。」,我給女兒念著兒歌,突然女兒問我,什麼是紅綠燈啊?為了給她說清楚,我特意帶她看我們家附近的交通燈(
nearmyfamilytrafficlight
)的執行。我們都知道,交通燈有三種狀態:紅燈(
redlight
)、黃燈(
yellowlight
)和綠燈(
greenlight
)。交通燈狀態的改變是由控制中心(
controlcenter
)來控制的。
下面讓我們來看看這個過程是如何實現的。
1、在這裡,先定義交通燈(
trafficlight
)介面類:
public inte***ce trafficlight
2、我們家附近的交通燈(
nearmyfamilytrafficlight
)是對交通燈(
trafficlight
)介面的具體實現:
public class nearmyfamilytrafficlight implements trafficlight
public void showgreenlight()
public void showyellowlight()}
3、定義控制中心(
controlcenter
)類:public class controlcenter
public void showredlight()
public void showgreenlight()
public void showyellowlight() }4
、我們家附近的交通燈(
nearmyfamilytrafficlight
)實際上有紅、黃、綠三盞燈組成:
a:紅燈(
redlight
)類:public class redlight extends nearmyfamilytrafficlight
return null;}}
b:綠燈(
greenlight
)類:public class greenlight extends nearmyfamilytrafficlight
return null;}}
c:黃燈(
yellowlight
)類:public class yellowlight extends nearmyfamilytrafficlight
return null;}}
5、編寫測試類:
public class test }6
、說明:a:
state
的定義:
不同的狀態
,不同的行為
;或者說
,每個狀態有著相應的行為。b:
我們可以看到,燈狀態的改變是有控制中心來控制,通過顯示不同的燈,實現了交通的正常運轉。
c:因此當有狀態切換這種事情要處理時,我們就可以用
state
這種模式了。
設計模式之State 交通篇
小朋友過馬路,左右看,紅燈停,綠燈行,阿姨誇我是乖寶寶。我給女兒念著兒歌,突然女兒問我,什麼是紅綠燈啊?為了給她說清楚,我特意帶她看我們家附近的交通燈 nearmyfamilytrafficlight 的執行。我們都知道,交通燈有三種狀態 紅燈 redlight 黃燈 yellowlight 和綠燈...
設計模式之State模式
state模式類似於switch的多路分鐘功能 狀態模式的ulm圖 狀態模式用於改變目標物件的行為方式,隨著狀態變化目標程式從一個轉到另一個目標程式。package state public class creature private class forg implements state pri...
設計模式之state模式
狀態模式 state pattern 允許一個物件在其內部狀態改變時改變它的行為。適用場景 一 一個物件的行為取決於他的狀態,並且它必須在執行時根據狀態改變它 的行為 二 一個操作中含有龐大的多分支條件語句,並且這些分支依賴於該物件的 狀態。優缺點 狀態模式的主要優點在於封裝了轉換規則,其缺點在於使...
SIP之設計模式 State設計模式
學過設計模式和沒接觸過c 的就不要往下看了。設計模式可能計算機系的同學都學過,不過我用得最多的可能是下面幾種 1.singleton 2.factory 3.strategy 因為這三個我覺得最簡單和使用.但 我的sip是要用狀態機的,所以決定用state設計模式.state模式對我們的sip有什麼...
設計模式之命令(State)模式
狀態模式是在程式開發時,經常用到的模式。如果沒有應用過,而實現業務功能。那你也一定是按照狀態模式的路子走的,只不過你沒有感覺到而已。它的實現,是要根據物件的內部狀態變化,而自動執行相應的功能。費話就不說了,請看一下源 這也是我研究設計模式時看到的一個例子,把其翻譯成中文,使個位能夠看懂些,由於水平有...