訪問者模式

2021-10-05 17:26:27 字數 1959 閱讀 4670

訪問者模式可以將某種固定結構的資料型別 在不改變資料結構的前提下 實現不同的訪問方法 起到不改變資料結構呈現不同內容的作用

關係類圖

主要思想是被訪問者通過開放介面 允許訪問者訪問自身內容

同時訪問者可以通過呼叫介面拿到被訪問者的資料 然後進行自己想要的操作

被訪問者提供方法讓訪問者可以訪問自己本身

public

abstract

class

employee

public

abstract

void

accept

(employeevisitor employeevisitor)

;}

public

class

engineer

extends

employee

@override

public

void

accept

(employeevisitor employeevisitor)

// 工程師考核指標是 工作年限

public

intgetworkage()

}

public

class

manager

extends

employee

@override

public

void

accept

(employeevisitor employeevisitor)

// 經理的考核指標是產品數量

public

intgetproduct()

}

訪問者介面提供獲得訪問者資訊的介面 訪問者和被訪問者是互相依賴的關係

public

inte***ce

employeevisitor

public

class

ceoimplements

employeevisitor

@override

public

void

visit

(manager manager)

}

public

class

ctoimplements

employeevisitor

@override

public

void

visit

(manager manager)

}

public

class

data

public

void

accpt

(employeevisitor employeevisitor)

}}

public

class}==

==結果

ceo訪問

工程師a的工作年限是:

29工程師b的工作年限是:

13工程師c的工作年限是:

8工程師d的工作年限是:

13經理a的產品數量是:

4經理b的產品數量是:

8經理c的產品數量是:

3經理d的產品數量是:5==

====

====

====

====

==cto訪問

工程師a的kpi是:

3工程師b的kpi是:

3工程師c的kpi是:

3工程師d的kpi是:

3經理a的kpi是:

2經理b的kpi是:

3經理c的kpi是:

2經理d的kpi是:

3

訪問者模式

訪問者模式 visitor pattern 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作。一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。一 問題 集合是大多數的系統都要處理的一種容器物件,它儲存了對其它物件的引用。一般情況下,在集合上採取的...

訪問者模式

行為模式中的訪問者模式 訪問者模式是物件的行為模式。訪問者模式的目的是封裝一些施加於某種資料結構元素之上的操作,一旦這些操作需要修改的話,接受這個操作的資料結構則可以保持不變。動機 類層次結構中可能經常由於引入新的操作,從而將型別變得脆弱。在軟體構建過程中,由於需求的改變,某些類層次結構中常常需要增...

訪問者模式

1.說明 namespace visitorspattern 象棋類 public abstract class chess public class redchess chess public class blackchess chess 在贏的情況下的狀態 public class win ac...