溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

web狀態(tài)模式結(jié)構(gòu)是怎樣的

發(fā)布時間:2022-01-13 17:06:36 來源:億速云 閱讀:152 作者:iii 欄目:大數(shù)據(jù)

本篇內(nèi)容主要講解“web狀態(tài)模式結(jié)構(gòu)是怎樣的”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“web狀態(tài)模式結(jié)構(gòu)是怎樣的”吧!

結(jié)構(gòu)

web狀態(tài)模式結(jié)構(gòu)是怎樣的

狀態(tài)模式提供一種方式,允許設(shè)計者根據(jù)對象的狀態(tài)設(shè)計對象的行為。

上下文類Context是狀態(tài)的所有者。例如前面文章中提到的圖形編輯軟件的例子,對于增加新圖形,選擇圖形等狀態(tài)來說,Context就是編輯畫面。這里有一點補充:在編輯軟件中,編輯畫面可以認為是確實存在的對象,而狀態(tài)或多或少是為組織編輯畫面的功能而虛擬出來的一個東西??梢哉J為狀態(tài)存在的意義就在于給上下文類Context施加一定的影響。而施加影響的手段就是調(diào)用上下文類Context的接口。

狀態(tài)類State用于定義供上下文使用的基本接口,內(nèi)容一般包括接受通知和控制狀態(tài)類的行為。例如接受請求,狀態(tài)切換,進入和退出動作等。大多數(shù)情況下這些接口只是供上下文類調(diào)用,也就說只有單方向的依賴關(guān)系。如果認真設(shè)計的話,這部分內(nèi)容的大部分可以共通化。

具象狀態(tài)類ConcreteState負責處理和實際應(yīng)用相關(guān)的內(nèi)容。在具象狀態(tài)類的處理中,會實際取得上下文類的狀態(tài),接受上下文類的請求,并將處理結(jié)果返回給上下文類。這也是狀態(tài)類存在的價值所在。

效果

使用狀態(tài)模式之前,處理各種情況的代碼混合在一處,在很多處理之前都需要使用判斷語句在不同的內(nèi)容之間進行選擇;而使用狀態(tài)模式之后每種情況的代碼都擁有單獨的執(zhí)行空間(State),從而使處理不同情況的代碼之間實現(xiàn)了隔離。

屬于同一個狀態(tài)的代碼被封裝在一個單獨的類中,使設(shè)計者在同一個時刻只需要考慮一件事情,而不是從一堆紛繁復雜的判斷語句中挑選自己當前需要關(guān)注的內(nèi)容。

狀態(tài)被獨立成類之后,一方面設(shè)計者可以脫離細節(jié),從更高的層次理解上下文類的行為;另一方面狀態(tài)獨立之后,有可能(實際上是很大的概率)出現(xiàn)一些可以功能相同或相近的狀態(tài)類,這可以有效地促進代碼的復用。

到此,相信大家對“web狀態(tài)模式結(jié)構(gòu)是怎樣的”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學習!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI