iT邦幫忙

2022 iThome 鐵人賽

DAY 23
0
自我挑戰組

【從工程師升級成為資深工程師的那檔事】 系列 第 23

【從工程師升級成為資深工程師的那檔事Day 23】設計模式 - 狀態模式

  • 分享至 

  • xImage
  •  

狀態模式

定義

允許物件內部狀態改變時,同時改變行為模式。

換言之,就是透過傳入不同的物件(Object)來完成方法內容(Method)

舉個生活一點的例子就是說,
一個球隊內部(管理的物件),讓不同球員(內部物件)執行一樣的戰術(管理物件的方法)會有不同的結果

用途

在正常應用上,是希望由外部狀態的改變時來同時改變物件內部行為。
來取代選擇性結構的使用,進而簡化內部方法的複雜程度。
而在開發上個人的運用習慣會更侷限在,
環境物件的屬性改變,來影響行為物件的行為方式做使用。

應用

結語

在GOF23種設計模式中 橋接模式、策略模式、狀態模式,
雖然這三者的設計結構是極為相似,
但在運用上時機上則完全不同。

橋接模式,
使用時機比較接近於軟體架構中中介層(middleware)的概念,

策略模式,
則是在同樣的流程底下以不同算法得出不同結果。

最後則是本篇所介紹到的狀態模式,
將錯綜複雜的流程結構轉為對應的狀態來處理。


上一篇
【從工程師升級成為資深工程師的那檔事Day 22】設計模式 - 中介者模式
下一篇
【從工程師升級成為資深工程師的那檔事Day 24】設計模式 - 備忘錄模式
系列文
【從工程師升級成為資深工程師的那檔事】 30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言