隨筆分類 - 設(shè)計模式系列
在Javascript中應(yīng)用設(shè)計模式
摘要:大家好!本文介紹狀態(tài)模式及其在Javascript中的應(yīng)用。模式介紹定義當(dāng)一個對象的內(nèi)在狀態(tài)改變時允許改變其行為,這個對象看起來像是改變了其類。狀態(tài)模式主要解決的是控制一個對象狀態(tài)的條件表達(dá)式過于復(fù)雜時的情況。把狀態(tài)的判斷邏輯轉(zhuǎn)移到表示不同狀態(tài)的一系列類中,可以把復(fù)雜的判斷邏輯簡化。類圖及說明State:抽象狀態(tài)接口或抽象類,負(fù)責(zé)對象狀態(tài)定義,并且封裝環(huán)境角色以實現(xiàn)狀態(tài)切換ConcreState:具體狀態(tài)每一個具體狀態(tài)必須完成兩個職責(zé):本狀態(tài)的行為管理以及趨向狀態(tài)處理。通俗地說,就是本狀態(tài)下要做的事情,以及本狀態(tài)如何過渡到其他狀態(tài)。Context:環(huán)境 定義客戶端需要的接口,并且負(fù)責(zé)具體狀態(tài)的
閱讀全文
摘要:大家好!本文介紹迭代器模式及其在Javascript中的應(yīng)用。模式介紹定義提供一種方法順序一個聚合對象中各個元素,而又不暴露該對象內(nèi)部表示。類圖及說明Iterator抽象迭代器抽象迭代器負(fù)責(zé)定義訪問和遍歷元素的接口,而且基本上是有固定的3個方法:first()獲得第一個元素,next()訪問下一個元素,isDone()(或者為hasNext())是否已經(jīng)訪問到底部ConcreIterator具體迭代器具體迭代器角色要實現(xiàn)迭代器接口,完成容器元素的遍歷。Aggregate抽象容器容器角色負(fù)重提供創(chuàng)建具體迭代器角色的接口,必然提供一個類似createIterator()(或者為iterator()
閱讀全文
摘要:大家好!本文介紹觀察者模式及其在Javascript中的應(yīng)用。模式介紹定義定義對象間一種一對多的依賴關(guān)系,使得每當(dāng)一個對象改變狀態(tài),則所有依賴于它的對象都會得到通知并被自動更新。類圖及說明Subject:主題\發(fā)布者能夠動態(tài)地增加、取消觀察者。它負(fù)責(zé)管理觀察者并通知觀察者。Observer:觀察者\...
閱讀全文
浙公網(wǎng)安備 33010602011771號