/**
* 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...