閱讀209 返回首頁    go 阿裏雲 go 技術社區[雲棲]


設計模式之訪問者模式

     訪問者模式:

                  表示一個作用於某對象結構中的各元素的操作。它使你在不改變各元素的類的前提下定義作用於這些元素的新操作。

       理解:

             在這個對象結構中隻有男人和女人,將Action抽象類作用於這兩個元素,而Action裏可以增加、刪除任何操作,比如成功、失敗、戀愛,而這些作用之間是沒有影響的,符合開-閉原則,這樣就將數據結構和作用於結構上的操作之間的耦合解脫開了這種模式適用於數據結構相對穩定的係統,比如世界上隻有男人和女人,這就是一個穩定因素。

     訪問者模式結構圖:

         

            visitor:抽象訪問者

            ConcreteVisitor:具體訪問者

             Element:抽象元素

             ConcreteElement:具體元素

             ObjectStructure:對象結構

     模式優點:

                1、增加新的訪問操作方便

               2、將有關元素對象的訪問行為集中到一個訪問者對象中,而不是分散在一個個元素類中,類的職責更加清晰

               3、讓用戶能夠在不修改現有元素類層次結構的情況下,定義作用於該層次結構的操作

     適用性:

                 一個對象結構包含多個類型的對象,希望對這些對象實施一些依賴其具體類型的操作

              需要對一個對象結構中的對象進行很多不同的且不相關的操作,並需要避免讓這些操作“汙染”這些對象的類,也不希望在增加新操作時修改這些類

              對象結構中對象對應的類很少改變,但經常需要在此對象結構上定義新的操作,比如世界上隻有男人和女人,但是男人和女人對於不同的事情會有不同的反應。

               

                   

最後更新:2017-04-03 12:55:16

  上一篇:go 單例模式-研磨設計模式--單例模式--雙重檢查加鎖(一)
  下一篇:go 網絡子係統76_套接字綁定