国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

設(shè)計(jì)模式之工廠方法(FACTORY METHOD))(二)

2024-07-21 02:23:36
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
(接上頁(yè))派生類為這個(gè)選拔基類(seeding)分別建立一個(gè)實(shí)例來(lái)調(diào)用這些方法。我們現(xiàn)在建立這兩個(gè)具體的選拔子類:straightseeding 類circleseeding類。prelimevent類將返回circleseeding類的實(shí)例,timedfinalevent類則返回straightseeding類實(shí)例。

結(jié)構(gòu)如下:





通過(guò)整個(gè)事件層次,可以看到prelimevent類、timedfinalevent類都包含getseeding方法,prelimevent類將返回circleseeding類的實(shí)例,timedfinalevent類則返回straightseeding類實(shí)例。在這個(gè)簡(jiǎn)單的例子當(dāng)中我們并沒(méi)有指出真正的工廠(factory),然而,實(shí)例化哪一個(gè)event類決定了哪一個(gè)seeding類將被實(shí)例化。

雖然它看起來(lái)像是在兩個(gè)類之間存在一對(duì)一相應(yīng)的通信。 但,這不是必需的??梢杂性S多不同類型的events類但他們只使用少一部分seeding類。



swimmer 類

swimmer類包含一些游泳運(yùn)動(dòng)員的具體信息和在選拔之后修改運(yùn)動(dòng)員的組以及泳道的方法。event類在數(shù)據(jù)庫(kù)(在這個(gè)例子中為文本文件)讀取運(yùn)動(dòng)員信息。當(dāng)調(diào)用event類的getseeding方法時(shí)將這個(gè)運(yùn)動(dòng)員的集合傳遞到seeding類。



events 類

我們已經(jīng)定義了一個(gè)抽象基類,在實(shí)際的應(yīng)用當(dāng)中,我們只是使用它來(lái)讀取游泳運(yùn)動(dòng)員的數(shù)據(jù)信息(在這個(gè)例子中為文本文件)。



prelimevent類返回circleseeding實(shí)例



public class prelimevent

inherits events

dim sd as seeding

public overrides function getseeding() as seeding

return new circleseeding(swmmers, numlanes)

end function



public overrides function isfinal() as boolean

isfinal = false

end function



public overrides function isprelim() as boolean

isprelim = true

end function



public overrides function istimedfinal() as boolean

istimedfinal = false

end function



public sub new(byval filename as string, byval lanes as integer)

mybase.new(filename, lanes)

numlanes = lanes

end sub

end class



timedfinalevent類返回straightseeding實(shí)例



public class timedfinalevent

inherits events



public sub new(byval filename as string, byval lanes as integer)

mybase.new(filename, lanes)

end sub

'------

public overrides function getseeding() as seeding

dim sd as seeding

'create seeding and execute it

sd = new straightseeding(swmmers, numlanes)

sd.seed()

getseeding = sd

end function

'------

public overrides function isfinal() as boolean

isfinal = false

end function

'------

public overrides function isprelim() as boolean

isprelim = false

end function

'------

public overrides function istimedfinal() as boolean

istimedfinal = true

end function



end class


中國(guó)最大的web開(kāi)發(fā)資源網(wǎng)站及技術(shù)社區(qū),
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 开江县| 巴南区| 金溪县| 浦江县| 和硕县| 渭南市| 清涧县| 慈利县| 巢湖市| 平罗县| 饶阳县| 扎赉特旗| 龙山县| 淅川县| 蒙阴县| 永康市| 文昌市| 若羌县| 泰兴市| 喀喇沁旗| 沅陵县| 清苑县| 乐山市| 上高县| 洛宁县| 兴海县| 漯河市| 伊宁市| 肥乡县| 武安市| 乐东| 东乌珠穆沁旗| 古丈县| 临沭县| 伊春市| 太和县| 嘉黎县| 黄浦区| 双流县| 东光县| 项城市|