15 行為型 訪問者模式 (Visitor)

2021-10-01 15:21:04 字數 3552 閱讀 9800

/**

* filename: abstractclub

* author: wei.zheng

* date: 2019/12/21 18:49

* description: 俱樂部抽象類,abstractelement角色

*/public

abstract

class

abstractclub

public string getname()

public

intgetpaytaxes()

public

abstract

void

accept

(abstractvisitor visitor)

;}

/**

* filename: footballclub

* author: wei.zheng

* date: 2019/12/21 19:08

* description: 足球俱樂部

*/public

class

footballclub

extends

abstractclub

public

intgetchampionnum()

@override

public

void

accept

(abstractvisitor visitor)

}

/**

* filename: basketballclub

* author: wei.zheng

* date: 2019/12/21 19:19

* description: 籃球俱樂部

*/public

class

basketballclub

extends

abstractclub

public

float

getattendancerate()

@override

public

void

accept

(abstractvisitor visitor)

}

/**

* filename: abstractvisitor

* author: wei.zheng

* date: 2019/12/21 18:53

* description: 訪問者抽象類

*/public

abstract

class

abstractvisitor

/**

* filename: mayorvisitor

* author: wei.zheng

* date: 2019/12/21 18:55

* description: 市長訪問者, 關心足球俱樂部的冠軍數量,關心籃球俱樂部的上座率

*/public

class

mayorvisitor

extends

abstractvisitor

@override

public

void

visit

(basketballclub club)

}

/**

* filename: financeministervisitor

* author: wei.zheng

* date: 2019/12/21 19:03

* description: 財政部長訪問者,關心俱樂部的繳稅額

*/public

class

financeministervisitor

extends

abstractvisitor

@override

public

void

visit

(basketballclub club)

}

/**

* filename: visitorreport

* author: wei.zheng

* date: 2019/12/21 19:31

* description: 訪問者報告類

*/public

class

visitorreport

public

void

showreport

(abstractvisitor visitor)

}}

/**

* filename: client

* author: wei.zheng

* date: 2019/12/21 19:30

* description: 訪問者模式使用者類

*/public

class

client

}

// 執行結果

2019-12

-2119:

42:31.017

10473

-10473

/? i/system.out: mayorvisitor 訪問資料

2019-12

-2119:

42:31.018

10473

-10473

/? i/system.out: 俱樂部:廣州恆大, 冠軍數量:

32019-12

-2119:

42:31.018

10473

-10473

/? i/system.out: 俱樂部:廣州富力, 冠軍數量:

42019-12

-2119:

42:31.018

10473

-10473

/? i/system.out: 俱樂部:廣東巨集遠, 上座率:

0.88

2019-12

-2119:

42:31.019

10473

-10473

/? i/system.out: financeministervisitor 訪問資料

2019-12

-2119:

42:31.019

10473

-10473

/? i/system.out: 俱樂部:廣州恆大, 繳稅額:

142019-12

-2119:

42:31.019

10473

-10473

/? i/system.out: 俱樂部:廣州富力, 繳稅額:

82019-12

-2119:

42:31.020

10473

-10473

/? i/system.out: 俱樂部:廣東巨集遠, 繳稅額:

37

訪問者模式(行為型)

在實際開發中也會遇到這種情況,有乙個屬性類e,有abcd四個屬性,另外有四個類abcd,要去訪問類e,a只訪問屬性a,b只訪問屬性b,c只訪問屬性c,d只訪問屬性d。這時候訪問者模式就派上用場了。定義 封裝一些作用於某種資料結構中的各元素的操作,它可以在不改變這個資料結構的前提下定義作用於這些元素的...

訪問者模式(行為型)

在大話設計模式一書中提到一種場景,男人和女人在面對不同的事情時會有不同的反應,例如成功 失敗 結婚 戀愛等等,在這種結構相對穩定 只有男人和女人 而遇到的情況多變的情形下,我們就可以用訪問者模式來實現,還是先看下面的介紹吧。1 定義 表示乙個作用於某物件結構中的各元素的操作。它可以使你在不改變各元素...

Java設計模式 行為型 訪問者模式

這個世界上存在很多事情,每個人都有各自要做的事情,有屬於你的事情,當然也有屬於我的事情,不過我們都在為各自的事情努力奮鬥。這個世界存在的很多事情 public inte ce goal 我有我的目標 public inte ce yougoal 你有你的目標 public inte ce megoa...