訪問者模式(visitor pattern):表示乙個用於作用於某物件結構中的各個元素的操作。讓使用者在不改變各元素的類的前提下定義作用於這些元素的新操作。訪問者結構。
訪問者模式有兩個層次結構:訪問者的層次、元素層次。
不同具體元素通過接收不同的具體訪問者,以自身為引數,執行訪問者中操作不同元素的方法,這稱為雙重分派機制。
public
class
concreteelementa
implements
element
public
void
operationa()
}
pubic class fadepartment extends department
else
if(worktime < 40)
} system.out.println("正式員工" + employee.getname() + "實際工資為:" + weekwage + "元。");
} //實現財務部對兼職員工的訪問
public
void
visit(parttimeemployee employee)
}
public
class
hrdepartment
extends
department
else
if(worktime < 40)
} //實現人力資源部對兼職員工的訪問
public
void
visit(parttimeemployee employee)
}
缺點:
適用環境:
設計模式(JAVA) 訪問者模式
場景 將公司中所有人員資訊都列印匯報出來,其中假設公司有兩類人員 1.普通員工 2.管理層 不同人員型別的資訊是不同的。訪問者模式 定義 封裝一些作用於某種資料結構中的各元素的操作,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作。包含如下幾個角色 1.visitor 抽象訪問者 抽象類或...
Java設計模式 訪問者模式
訪問者模式 visitor pattern 以列印公司員工的資訊報表為例。下面先看下類圖。使用了乙個模版方法模式,把所要的資訊都列印出來。這樣子寫出來的 就不太符合公司不同管理層的需要,不能滿足各自的需求。每個普通員工類和經理類都乙個方法 report,那是否可以把這個方法提取到另外乙個類中來實現呢...
JAVA設計模式 訪問者模式
訪問者模式一般被使用者一些資料結構穩定的場合,資料物件穩定,而實際對它的操作是不穩定的,他可以接受不同的物件而做出不同的反應,對與穩定的資料結構,它的功能和方法也就穩定,所以就把它抽象出來,抽取出來,而對於訪問它的物件是經常改變的,傳遞不同的實際物件也就得到不同的執行效果,多型的體現 訪問者模式的參...