訪問者模式(Visitor)

2021-09-01 18:36:58 字數 1406 閱讀 3309

訪問者模式封裝一些作用於某種資料結構中的各元素的操作,它可以在不改變這個資料結構的前提下定義作用於這些元素的新的操作,屬於行為型模式一種。

缺點:

public inte***ce visitor
定義element(抽象元素)

public inte***ce element
定義具體元素fruitelement

public class foodelement implements element 

public float getprice()

public int getnum()

@override

public float accept(visitor visitor)

}

定義具體元素fruitelement

public class fruitelement implements element 

public float getprice()

public int getnum()

@override

public float accept(visitor visitor)

}

定義具體的concretevisitor

public class concretevisitor implements visitor 

@override

public float visit(fruitelement fruit)

}

定義物件結構objectstructure

public class objectstructure 

}/**

* 把元素加入到集合

** @param element 待新增的元素

*/public void addelement(element element)

/*** 把元素從集合中移除

** @param element 要移除的元素

*/public void removeelement(element element)

}

客戶端使用

objectstructure objectstructure = new objectstructure();

objectstructure.addelement(new foodelement(10, 2));

objectstructure.addelement(new fruitelement(10, 2));

objectstructure.accept(new concretevisitor());

Visitor(訪問者模式)

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

訪問者模式(Visitor)

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

訪問者模式 Visitor

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