訪問者模式

2021-08-20 06:45:07 字數 1129 閱讀 2631

封裝一些作用於某種資料結構中的各元素,它可以在不改變資料結構的前提下定義作用於這些元素的新的操作.

抽象訪問者

抽象類或者介面,宣告訪問者可以訪問哪些元素

具體訪問者

實現具體該幹什麼

抽象元素

介面或者抽象類,宣告接受哪一類訪問者訪問.

具體元素

實現具體方法

結構物件

元素產生者,一般容納在容器中.

符合單一職責原則

優秀的擴充套件性

靈活性非常高

具體元素對訪問者公布細節

具體元素變更比較困難

違背了依賴倒置原則

抽象元素

public

abstract

class element

具體元素

public

class

concreteelement1

extends

element

@override

void accept(ivisitor ivisitor)

}

public

class

concreteelement2

extends

element

@override

void accept(ivisitor ivisitor)

}

抽象訪問者

public

inte***ce ivisitor

具體訪問者

public

class

visitor

implements

ivisitor

@override

public

void

visit(concreteelement2 concreteelement2)

}

訪問者模式

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

訪問者模式

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

訪問者模式

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