訪問者模式(Visitor)

2021-07-29 05:15:13 字數 1112 閱讀 9960

定義:

訪問者模式:封裝一些作用於某種資料結構的操作,他可以在不改變資料結構的前提下定義作用於這些資料結構的新操作。

角色:

抽象訪問者(visitor)角色:定義介面,宣告乙個或多個訪問操作。

具體訪問者(concretevisitor)角色:實現抽象訪問者所宣告的介面。

抽象元素(visitable)角色:宣告乙個接受操作,接受乙個訪問者物件作為乙個引數。

具體元素節點(concreteelement)角色:實現抽象節點鎖規定的接受操作。

資料結構物件(objectstructure)角色:可以遍歷資料結構中的元素,提供介面讓訪問者角色可以訪問每乙個元素。

url圖

例子:

//抽象訪問者

public inte***ce ivisitor

//具體訪問者

public class visitor implements ivisitor

public void visit(concreteelement2 el2)

}//抽象元素

public abstract class element

//具體元素

public class concreteelement1 extends element

public void dosomething()

}//具體元素

public class concreteelement2 extends element

public void dosomething()

}//資料結構物件

public class objectstructure }

public void add(element element)

}//客戶端訪問

public class client

}

Visitor(訪問者模式)

名 稱 visitor 訪問者模式 意 圖 表示乙個作用於某物件結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。適 用 環 境 u 乙個物件結構包含很多類物件,它們有不同的介面,而你想對這些物件實施一些依賴於其具體類的操作。u 需要對乙個物件結構中的物件進行很多...

訪問者模式(Visitor)

訪問者模式 visitor 表示乙個作用於某物件結構中的各元素的操作。他使你可以在不改變各元素的類的前提下定義作用於這些元素的新操作。訪問者模式適用於資料結構相對穩定的系統。他把資料結構和作用於結構上的操作之間的耦合解脫開,使得操作集合可以相對自由地演化。訪問者模式的目的是要把處理從資料結構分離出來...

訪問者模式 Visitor

訪問者模式 visitor 首先看一下男人與女人不同狀態下反應的實現 結構圖 狀態的抽象類和人的抽象類 abstract class action abstract class person 在這裡關鍵在於人只分為男人與女人,分類穩定 具體狀態類 成功 class success action 時,...