Visitor模式和Double Dispatch
一、概念
靜態(tài)分派(Static Dispatch),發(fā)生在編譯時期,分派是根據(jù)靜態(tài)類型信息發(fā)生的,方法重載就是靜態(tài)分派。
動態(tài)分派(Dynamic Dispatch),發(fā)生在運行時期,動態(tài)分派動態(tài)地置換掉某個方法。面向?qū)ο蟮恼Z言用動態(tài)分派實現(xiàn)多態(tài)性。
Java語言支持靜態(tài)多分派和動態(tài)的單分派,利用設計模式Java可以實現(xiàn)Double Dispatch,即訪問者模式。
二、Visitor Pattern
目的:封裝一些施加于某種數(shù)據(jù)結(jié)構(gòu)元素之上的操作。
UML圖:

主要原理:“反傳球”,Element來Visitor之間二輪調(diào)用,調(diào)用過程中用sinlge dispatch確定類型
posted on 2011-05-24 16:54 XXXXXX 閱讀(1629) 評論(1) 編輯 收藏 所屬分類: Programing