狀態變化模式

律白發表於2020-10-08

文章目錄

背景

在軟體構建過程中,某些物件的狀態如果改變,其行為也會隨之而發生變化,比如文件處於只讀狀態,其支援的行為和讀寫狀態支援的行為就可能完全不同。
如何在執行時根據物件的狀態來透明地更改物件的行為?而不是為物件操作和狀態轉化之間引入緊耦合?

定義

允許一個物件在其內部狀態改變時改變它的行為。從而使物件看起來似乎修改了其行為。 把《設計模式》GoF

case

王者榮耀這款遊戲,在排位賽模式下,bp的方式是和段位掛鉤的。磚石以下不需要ban英雄,磚石以上王者以下有兩個ban的名額,王者以上有四個ban的名額。就是說段位不一樣,進行同樣的遊戲,bp規則也是不一樣的。對戰過程中也有類似的情況,巔峰賽會遮蔽召喚師的id。
這裡的段位就對應上面的狀態。

相關文章