訪問者模式

2021-08-20 23:32:28 字數 1492 閱讀 1132

定義:

在不改變物件資料結構的前提下,定義和封裝作用於該資料結構各元素的操作。

設計類圖:

訪問者模式中的角色:

示例**:

public

inte***ce

visitor

public

class

concretevisitora

implements

visitor

@override

public

void

visit(concreteelementb element)

}

public

class

concretevisitorb

implements

visitor

@override

public

void

visit(concreteelementb element)

}

public

abstract

class

element

public

class

concreteelementa

extends

element

public

void

operationa()

}

public

class

concreteelementb

extends

element

public

void

operationb()

}

public

class

objectstructure

public listgetelements()

}

public

class

client

//第二個訪問者進行訪問操作

concretevisitorb visitorb = new concretevisitorb();

for (element element : structure.getelements()) }}

訪問者模式的優缺點優點是遵循單一職責將任務集中化處理,並且不會打破原有的資料結構。缺點是不遵循依賴倒置原則,高層依賴了低層模組,抽象的訪問者依賴具體的元素物件,並且插入訪問者破壞了組合類的封裝。

參考:

訪問者模式

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

訪問者模式

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

訪問者模式

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