23 狀態模式

2021-10-13 12:25:43 字數 1360 閱讀 3190

//當前activity狀態

var activitystate: activitystate =

oncreatestate()

set(value)

funoncreate()

funonstart()

funonresume()

}

package com.study.state

abstract

class activitystate

package com.study.state

class oncreatestate :

activitystate()

override

funonstart()

override

funonresume()

}

package com.study.state

class onresumestate:

activitystate()

override

funonstart()

override

funonresume()

}

package com.study.state

class onstartstate:

activitystate()

override

funonstart()

override

funonresume()

}

package com.study.state

/** * 定義和型別

定義:允許乙個物件在其內部狀態改變時,改變他的行為

型別:行為型

適用場景

乙個物件存在多種狀態(不同狀態下行為不同),且狀態可相互切換

優點將不同的狀態隔離

把各種狀態的轉換邏輯,分布到state的子類中,減少相互間依賴

缺點狀態多的業務場景導致類數目增加,系統變複雜

堅持學習了乙個左右時間的設計模式,我對設計模式有了更深刻的了解。非常感謝提供學習資源的大佬。

設計模式 狀態模式 23

什麼是狀態模式 在現實生活我們在不同的時候點會做不同的事情.也會有不同的狀態.當然,程式設計的是世界中我們也會在不同的時間可能有不同的狀態,不同的處理,這時我們就要用到狀態模式了.她的目的就是 允許物件在內部狀態發生改變時改變它的行為,物件看起來好像修改了它的類。狀態模式的例子 狀態模式的介面 pa...

23種設計模式 狀態模式

在軟體構建過程中,某些物件的狀態如果改變,其行為也會隨之而發生變化。比如文件處於唯讀狀態,其支援的行為和讀寫狀態支援的行為就可能完全不同。如何在執行時根據物件的狀態來透明地更改物件的行為?而不會對物件的操作和狀態轉化之間引入緊耦合?允許乙個物件在其內部狀態改變時改變它的行為。從而使物件看起來似乎修改...

23種設計模式之狀態模式

定義 當乙個物件內在狀態改變時允許其改變行為,這個物件看起來像改變了其類 通俗的說,就是乙個事物有不同的狀態,在不同狀態下執行各個方法時有不同的表現,將每個狀態都封裝成乙個類,然後通過上下文物件統一管理 其類圖如下 其中的三個角色如下 state 抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封...