訪問者模式

2021-08-09 10:28:54 字數 1017 閱讀 5409

訪問者模式,很多人認為是最難的一種設計模式。我覺得是名字沒起好。我們先換個名字,不如叫它讀者模式,我們知道一千個讀者有一千個哈姆雷特。也就是說同乙個物件,不同的讀者會有不同的操作。**如下:

public

class

visitor

inte***ce

ivisitor

static

class

concreteelement1

extends

element

public

void accept(ivisitor visitor)

}static

class

concreteelement2

extends

element

public

void accept(ivisitor visitor)

}static

class

vistor1

implements

ivisitor

public

void visit(concreteelement2 el2)

}static

class

vistor2

implements

ivisitor

public

void visit(concreteelement2 el2)

}public

static

void main(string args)

for (element e : list)

for (element e : list)

}}輸出:

哈姆雷特

紅樓夢哈姆雷特

紅樓夢很傷心:哈姆雷特

特別傷心:紅樓夢

現在應該明白了吧,說到底就是為了對同一物件做不同操作。也沒說的那麼難是吧,注釋掉的那句可以好好研究下。

覺得容易理解的話物件導向的23種設計模式點這裡

訪問者模式

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

訪問者模式

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

訪問者模式

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