【D1n910】第 18 章 超級瑪麗 —— 狀態(tài)模式
2021-02-25 21:19 作者:愛交作業(yè)的D1N910 | 我要投稿
正常操作,正常分析,大家好,我是D1n910。
今天我繼續(xù)來學習 《JavaScript 設計模式》的第四篇 行為型設計模式
這是一個連續(xù)的讀書筆記,所以如果你之前的內(nèi)容沒有看的話,可以去看看(建議直接看書,當然書的例子都比較早了,是2015年之前的代碼內(nèi)容,過了六年了,前端發(fā)展了很多,比如類的聲明可以直接用 Class 了)。
直接查看目錄就可以查看到所有的系列文章啦。

這里再次感謝 《Javascript 設計模式》及其作者 張榮銘,專欄內(nèi)容是在它的基礎上生成的。
現(xiàn)在會覺得很多設計模式離我們有點遙遠,是因為我們現(xiàn)在都在用大佬寫好的框架吧,很多設計模式都包含在框架里了。
后面有機會的話,我希望我可以查看目前主流框架的源代碼,然后進行講解。

第四篇 行為型設計模式
行為型設計模式用于不同對象之間職責劃分或算法抽象,行為型設計模式不僅僅涉及類和對象,還涉及類或?qū)ο笾g的交流模式并加以實現(xiàn)。
第 18?章 超級瑪麗 - 狀態(tài)模式
狀態(tài)模式(State):當一個對象的內(nèi)部狀態(tài)發(fā)生變化時,會導致其行為的改變,看起來是改變了對象。
我們玩超級瑪麗這個游戲,屏幕上按鍵后,角色會有不同的反應,比如向左走,向右走等等。

按照數(shù)據(jù)的不同狀態(tài)執(zhí)行不同的方法,我們很容易會想到要使用分支判斷:

這樣很麻煩,都是同一種類型??梢钥紤]換一種方式


這樣一下子就清爽很多,我們的條件變成了對象的屬性,執(zhí)行方法就是屬性對應的函數(shù)。
本章End
加油加油
D1n910 于 2021年02月25日 在南山后海
標簽: