//當前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 抽象狀態角色 介面或抽象類,負責物件狀態定義,並且封...