這篇文章主要介紹“web訪問者模式的動機是什么”,在日常操作中,相信很多人在web訪問者模式的動機是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”web訪問者模式的動機是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
意圖
將作用于某個數據結構中的各個元素的操作集合成一個操作類。這樣當需要擴展對數據結構中元素的操作時只需擴展操作類而不是修改數據結構中的操作對象類本身。
動機
考慮一個使用組合模式形成的樹狀數據結構。使用組合模式的一個好處就是可以以透明的方式增加對于整個數據結構中每個要素的操作。實現方式非常簡單,就是在組合類Composite中準備一個相同的方法,在這個方法中調用每個子要素的對應方法。
def reset_connections(self, memo): Component.reset_connections(self, memo) for child in self.iter(): child.reset_connections(memo)
這種方式真的很好用,至少在最初使用這種方法增加功能時設計者一定是這樣認為的。但是隨著使用次數的增多,設計者早晚會發現:每次都是同樣的結構,稍微換一下操作的內容就變成了另外一個功能。
這種重復性往好的方向看可以說是使用同樣的方式解決了不同的問題,降低了增加新功能的難度,這當然沒有錯。但是從另一個角度來說,畢竟增加功能時修改了已有的代碼。是不是可以在不修改已有代碼的情況下,增加新功能呢?
同樣的結構就是這個問題的突破口,而訪問者模式就是這個問題的解決之策。
到此,關于“web訪問者模式的動機是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。