橋梁模式的結(jié)構(gòu)與示意性源代碼_第1頁
橋梁模式的結(jié)構(gòu)與示意性源代碼_第2頁
橋梁模式的結(jié)構(gòu)與示意性源代碼_第3頁
橋梁模式的結(jié)構(gòu)與示意性源代碼_第4頁
橋梁模式的結(jié)構(gòu)與示意性源代碼_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1一、

橋梁〔Bridge〕模式橋梁模式是一個非常有用的模式,也是比擬復(fù)雜的一個模式。熟悉這個模式對于理解面向?qū)ο蟮脑O(shè)計原那么,包括"開-閉"原那么(OCP)以及組合/聚合復(fù)用原那么(CARP)都很有幫助。理解好這兩個原那么,有助于形成正確的設(shè)計思想和培養(yǎng)良好的設(shè)計風(fēng)格。橋梁模式的用意【GOF95】在提出橋梁模式的時候指出,橋梁模式的用意是"將抽象化(Abstraction)與實(shí)現(xiàn)化(Implementation)脫耦,使得二者可以獨(dú)立地變化"。這句話有三個關(guān)鍵詞,也就是抽象化、實(shí)現(xiàn)化和脫耦。抽象化廟存在臟于多冶個實(shí)預(yù)體中輝的共搬同的窯概念豬性聯(lián)暢系,貢就是寇抽象睛化。銹作為性一個調(diào)過程純,抽谷象化呼就是村忽略命一些村信息模,從臘而把棵不同鑄的實(shí)村體當(dāng)堵做同閱樣的澡實(shí)體更對待洪【L僵IS址KO經(jīng)V9館4】緊。盟實(shí)現(xiàn)嚼化秩抽象小化拆給出貿(mào)的閑具體凱實(shí)現(xiàn)吩,就糖是實(shí)頑現(xiàn)化乒。脫耦灑所謂季耦合舊,就雪是兩命個實(shí)然體的厚行為精的某坊種強(qiáng)導(dǎo)關(guān)聯(lián)其。而哨將它液們的既強(qiáng)關(guān)評聯(lián)去臣掉,陳就是丑耦合沃的解賞脫,東或稱盆脫耦束。在疫這里諷,脫泉耦是朽指將挎抽象猾化和腥實(shí)現(xiàn)崗化之遣間的青耦合撫解脫雨開,爹或者揀說是膀?qū)⑺蟼冎夐g的抬強(qiáng)關(guān)酸聯(lián)改澆換成洗弱關(guān)犬聯(lián)。察將兩姨個恰角色罵之間率的繼手承關(guān)愈系改滅為聚惱合關(guān)住系,鼻就是他將它陣們之慈間的艇強(qiáng)關(guān)充聯(lián)改呈換成味為弱護(hù)關(guān)聯(lián)屑。因尊此以,橋關(guān)梁模室式中權(quán)的所贈謂脫酬耦,趙就是適指在扛一個張軟件贊系統(tǒng)微的抽諒象化認(rèn)和實(shí)墾現(xiàn)化鏟之間面使用敞組合英/忙聚合般關(guān)系遍而不統(tǒng)是繼染承關(guān)謝系,扎從而君使兩膽者可詳以相律對獨(dú)尋立地厲變化柏。這哄就是嚷橋梁半模式吼的用趣意。

貪二、腿

橋印梁模捕式的賭結(jié)構(gòu)芒橋梁汁模式太【G刑OF胳95土】是烤對象麗的結(jié)蠻構(gòu)模除式誠,又獲稱為長柄體氏(H喇a(chǎn)n眨dl優(yōu)e脖an灑d殼B毒od記y)將模式暑或接棒口(往In攀te梨rf氏ac終e)打模式貌。貌下列圖偵所示冷就是隨一個矮實(shí)現(xiàn)瘦了橋欣梁模吃式的面示意逮性系崗統(tǒng)的蒜結(jié)構(gòu)厚圖。獨(dú)可以賭看出攝,這分個系援統(tǒng)含茂有兩棋個等蠻級結(jié)山構(gòu),體也就改是:燕由抽庫象化購角色餐和修懶正抽治象化趁角色窄組成惜的翼抽象巧化等筐級結(jié)圓構(gòu)。怨梳由實(shí)松現(xiàn)化幅角色顫和兩周個具端體實(shí)滿現(xiàn)化劉角色列所組禽成的喬實(shí)現(xiàn)發(fā)化等視級結(jié)拉構(gòu)夢。吳橋梁剪模式為所涉造及的葉角色蘋有:路抽象啄化(林Ab侄st辯ra梯ct敲io賢n)上角色生:搖抽象夠化給醬出的披定義趣,并稼保存貿(mào)一個甩對實(shí)頁現(xiàn)化嫩對象紋的引杯用。藍(lán)因修正衡抽象萌化(聽Re趟fi返ne便d鉗Ab飄st赤ra徐ct臉io王n)雜角色寫:糟擴(kuò)展渡抽象象化角渾色,紛改變帖和修濱正父叮類對可抽拉象化趣的定耀義。預(yù)散實(shí)現(xiàn)允化(梢Im守pl貢em藥en忙to底r)雄角色倒:循這個還角色肥給出餡實(shí)現(xiàn)陪化角嚷色的儲接口平,但蔽不給剖出具纏體的板實(shí)現(xiàn)闖。必踩須指湖出的卻是,嘗這個灑接口授不一懲定和企抽象辰化角挪色的密接口汁定義所相同軋,實(shí)霸際上貓,這衣兩個肝接口謊可以母非常惜不一帳樣。通實(shí)現(xiàn)嬸化角噸色應(yīng)已當(dāng)只吼給出芝底層許操作真,膝而抽斤象化罩角色政應(yīng)當(dāng)喜只給興出基趣于底衰層操柏作的剛更高疊一層牧的操布作。蔽車具體費(fèi)實(shí)現(xiàn)宜化(違Co圖n使cr啦et業(yè)e產(chǎn)Im潤p役le愛me粥nt葵or素)角初色:褲這個洗角色斯給出哪實(shí)現(xiàn)盞化角勁色接夫口的奔具體哀實(shí)現(xiàn)懷。

托三、你

橋旁梁模勺式的子示意碼性源溝代碼

硬//燙

B紛ri繭dg繭e

罷pa辯tt誓er周n

蠅--沿

S叮tr豐uc顛tu跨ra快l

善ex替am鞠pl些e

庫us秘i鏈ng烘

S陣ys漫te騰m;

耍//糾

"列Ab玩st刃ra蕩ct啞io豈n"

燃cl伶as齡s龍

A杯bs母tr捷ac撕ti那么on

小{

拍//太

F案ie賊ld淚s

瞎pr觸ot低ec銳te窮d銅

I拆mp繼le現(xiàn)me匹nt可or零

i驕mp失le騙me證nt灘or霉;

危/勤/

忍Pr雙op宣er屆ti處es

瘡pu借bl麥ic竿

I宇mp上le盟me寫nt阿or趨

I為m端pl梳em僅en敲to競r

殼{

垂se軟t漫{

更im伏pl暑em怖en深to雙r

孫=

匹va想lu蒼e;泡

}

造}

違//證

M辰et稍ho標(biāo)ds

材vi成rt奶ua蘆l格

罷pu刮bl估ic起

汪vo招id喜

O愁pe芬ra后ti瞇on哈()縣

教{

三im農(nóng)pl公em穩(wěn)en脆to洲r(nóng).夕Op型er掌at浴io熱n(死);

行}

鬧}

榆//狀

"漲Im駛pl徐em聾en車to憶r"

系ab林st攀ra吃ct慰

兼cl生as腿s股

I烈mp駐le凈me恰nt鏡or

食{

見//翻

M蝶et晌ho事ds哭

漢ab嗓st僑ra奪ct虜

起pu夸bl右ic喬

歉vo盲id餡

O云pe織ra齡ti捐on與()廟;享}

爆//次

"時Re奴fi室ne渾dA攻bs絮tr輝ac很ti朝on席"

駕cl惑as尾s越

R酬ef停in器ed僅Ab響st催ra盞ct游io神n

慢:

東Ab農(nóng)st果ra中ct室io摟n

顧{

芝//灘

M睛et渠ho句ds

夜ov六er元ri離de鞭

響pu枕bl鍋i赤c廚

群vo發(fā)id董

O糠pe孟ra鞏ti由on皮()

癥{

溪im箏pl嚇em煮en式to超r.殊Op亭er姨at插io渡n(窯);

嫁}

凡}

濤//蕉

"炊Co挨nc船re黑te利Im騙pl接em襖en鏟to跌rA偏"

該cl降as餅s敲

C樓on始cr黎et日eI宋mp蜜l簡em榜en剃to井rA僅

:逮

I喂mp勢le常me扭nt屬or

俊{

供//載

M獄et片ho禁ds

幫ov甜er丈ri掏de擴(kuò)

恒pu監(jiān)bl迷ic脊

業(yè)vo章id西

O搬pe丟ra看ti斯on因()

屢{

執(zhí)Co但ns做ol咳e.強(qiáng)Wr囑it云eL化in振e(蜜"C似on他cr遙et指eI細(xì)mp宴le擊me堪nt碑or傷A

枯Op賺er檔at建io距n"萌);

艷}

怕}

劃//蕩

"壽Co瞞nc蓋re錫te蟲Im襪pl惕em遙en沫to婚rB壁"

給cl宵as休s慨

C神on筍cr斗et宇eI泛mp職le鳳me左nt垮or下B

沫:

乳Im楊pl鹿em幟en椅to扎r

協(xié){

抵//裹

M幫et勸ho骨ds

腎ov故er酷ri極de數(shù)

魄pu穗b鑄li譜c降

猴vo頃id掛

O肚pe訂ra爛ti簡on壯()

狼{

廁Co抵ns蹦ol嗓e.拜Wr煩it箭eL葵in融e(赴"C單on爹cr柔et渠eI真mp蝶le笑me趟nt見or濾B

構(gòu)Op目er控at期io譽(yù)n"俯);

汪}

鏟}

注俊躲//貴/撇

階//俘/軍

C狠li暗en藝t

瞇te應(yīng)st

逃//貿(mào)/鞏

棗pu腥bl忍ic傲

黨cl格as掙s姿

翻Cl義ie憲nt

脾{

狐pu敗bl陷ic祥

予st思at瞞ic叛

懂vo某id勻

M廢ai賀n(她

飾st勇ri醬ng些[]臭

a獅rg墨s

評)

鍛{

像Ab查st憐ra拼ct忠io員n

滿ab梁st銀ra坐ct真io緊n

貍=

樸ne元w號

R座ef跨in杜ed博Ab使st顯ra慎c竭ti挎on侄()輩;

頭//逢

S利et徹

i菊mp鐵le衡me鐵nt賄at垃io忘n

全an貌d

娛ca識ll

欲ab怕st杏ra腰c(diǎn)t放io值n.決Im孝pl殘em便en奏to夫r

方=

掀ne灑w打

C預(yù)on股cr耗et平eI裹mp暢le突me禿nt融or內(nèi)A(種);

愧ab慰st枕ra踩ct種io引n.抵Op硬er鐵at適io孫n(假設(shè));

回//李

C獲ha競ng焦e

梢im遷pl趁em羞en衰ti革on蠻

a椅nd商

c王al保l

狡ab定st將ra益ct諒io恩n.檢Im侵pl花em坑en拾to瓦r

奸=

差ne隱w畢

C應(yīng)on狀cr嘗et僚eI勁mp蜘le爐me具nt值or乞B(驕);

晝ab億st勾ra姜ct夜io鼓n.影Op安er線at狡io勾n(載);

揚(yáng)

倘}

繞}

鉤四、肚

調(diào)綁制解熔調(diào)器持問題憶感覺鄉(xiāng)?敏幫捷軟程件開廈發(fā)-稻原那么僑、模疏式與井實(shí)踐魄?中康關(guān)于搏Br限id液ge龍模式孝的例壇子很絕好。侮〔?舉Ja彎va挪與模恭式?型一書裁33怕章的盒對變紅化的逝封裝歇一節(jié)莊也寫放得很集不錯慕,推配薦大粒家讀俯一讀裕。它找深入從的闡摧述了染?D黨es白ig造n容Pa振tt扮er誓ns侄E魂xp傷la傻in勿ed聲?一畜書中續(xù)"1認(rèn)〕D涂es于ig上n汽to斧i倡nt馬er歐fa將ce耀s.僻2霞)F套av書or船c朋om翅po蓋si斥ti畫on重o降ve憐r貓in矩he踩ri科ta陣nc混e.茄3嘉)F院in臉d批wh福at熄v終ar皇ie飯s菌an駛d它en丘ca繳ps撤ul炊at茂e歐it昂"的皺三個采觀點(diǎn)奪?!呈?。幻如圖筒所屠示,醉有大肌量的貌調(diào)制炸解調(diào)獵器客罩戶程節(jié)序在圾使廊用M腔od希em番接口壞。M腎od日em次接口列被怕幾個大派饞生類齡H宗ay絡(luò)es僵Mo免de崗m、購US該Ro李bo耽ti凡cs純Mo紀(jì)de飼m和絨E士ar稿ni途es綠Mo童de夠m實(shí)搏現(xiàn)。員它很諸好地德遵循鋼了O褲CP被、L卷SP貍和D遞IP神。當(dāng)佳增加鄉(xiāng)新種歲類的狠調(diào)制旬解調(diào)遙器時遷,調(diào)秋制解略調(diào)器跌的客籃戶程繳序不鉤會受杜影響綱。揀假定判這種愁情形足持續(xù)浴了幾尸年,破并有溝許多因調(diào)制筍解調(diào)嫁器的旬客戶凍程序刪都在洪使用勺著M尿od厭em險接口更。現(xiàn)詳出現(xiàn)重了一愧種不總撥號愿的調(diào)莫制解恰調(diào)器符,被湯稱為鼠專用雀調(diào)制尖解調(diào)駕器。問它們潮位于翠一條面專用揉連接惹的兩驕端。舌有幾暮個新霸應(yīng)用刷程序盼使用鍵這些腥專用碌調(diào)制和解調(diào)崇器,摩它們啞無需扔撥號傅。我貍們稱泛這些芹使用到者為井De組dU逝se淡r。買但是吊,客仁戶希彼望當(dāng)計前所會有的此調(diào)制溜解調(diào)偏器返客戶賊程序倍都可烏以使勾用這棋些專打用調(diào)遣制解察調(diào)夕器。邊他厘們不兔希中望去獸更改聞許許罰多多非的調(diào)司制解謠調(diào)器污客戶仆應(yīng)用受程序充,所巡以完糊全可棒以讓缸這些非調(diào)制腔解調(diào)濱器客激戶程渣序去蘭撥一干些假攻(唇du改mm澡y)郊丙號碼濟(jì)。重如果律能選格擇的凳話,篇我們縱會把抬系統(tǒng)海的設(shè)養(yǎng)計更且改為搜下列圖舞所示脹的那某樣。印我們計把撥免號和兇通信演功能慘別離洗為兩額個不釘同的灶接口彼。原可來的聞?wù){(diào)制撥解調(diào)屯器實(shí)尾現(xiàn)這懷兩個念接口鑄,而炸調(diào)制艙解調(diào)或器客掏戶程黃序使再用這穿兩個射接口鄙。D參ed煮Us億er山只使屑用賞Mo旁de巨m接躺口,運(yùn)而D摩ed縮ic跟at罰eM抗od鳴em愛只實(shí)嫂現(xiàn)M薪od沖em姥接口旁。但陵這樣穩(wěn)做會養(yǎng)要求掃我們源更改率所有叨的調(diào)更制解秀調(diào)器殿客戶檢程序波--南這是映客羞戶不山允許磁的。衫一個央可能喚的解鑒決方枕案是樹讓D度ed盒ic頌at晌ed腸Mo責(zé)de蠢m(xù)從案Mo需de惡m派邁生并斬且把蓬di錯al通方法漆和h做an姓gu娃p方描法實(shí)扯現(xiàn)為溜空,榜就像哀下面茶這樣它:朱幾個叔月后早,已孕經(jīng)有汗了大郵量的沖De宣dU烘se熱r,澆此時皮客戶肆提出龜了一臥個新席的更今改。瘡為了皺能撥魯國際排棗號碼窯、信乳用卡農(nóng)躲、P瑞IN灣標(biāo)識朝心等等鐵,必耳修對易現(xiàn)有敵di州al記中使版用c缺ha赴r[尚10叢]存握儲號叔碼改叨為能肥夠撥皆打任溝意長業(yè)度的瘋呆號碼脂。五顯然把,所伙有的敬調(diào)制凱解調(diào)士器客俗戶程殲序都真必須淚更改除。客位戶同迷意了嫌對調(diào)甚制解效調(diào)器呆客戶首程序愧的更蕩改,介因為浸他們雜別無啞選擇蛇。糟娘糕的耽是,居現(xiàn)在宇必須炊要去殲告訴占De常dU啊se悄r的殲編寫沿者,牙他們殊必須里要更嬸改蔽他們提的代商碼!絞你可蜻以想您象他岔們聽仔到這川個范會有丈多高飯興。盲本來劫他們授是不砍用調(diào)埋用d剩i蝶al呀的但。武這就維是許效多項隨目都居會具膠有的撐那種駁有害膊的混紛亂依熱賴關(guān)蠟系。蕉系統(tǒng)循某一焰局部養(yǎng)中的垮一個占雜湊慘體(雄kl堤ud逼ge正)創(chuàng)法建了努一個霧有害奶的依泰賴關(guān)付系,扯最終父導(dǎo)致萌系統(tǒng)冤中完街全無膊關(guān)的款局部陰出現(xiàn)檢問題臭。陷如果利使用扁AD島AP經(jīng)TE享R模蹦式解譯決最致初的訪問題稈的話覽,就遍可以厚防止氏這個嘩嚴(yán)重攻問題朝。如街圖:善請注熟意,泉雜湊跟體仍國然存狠在。暮適配熔器仍廣然要辯模擬猜連接莫狀態(tài)齒。然糟而,予所有兔的依頓賴關(guān)洽系都勺是從聰適配盼器發(fā)阿起的堪。雜墾湊體拼和系罵統(tǒng)隔傾離,敬藏身灶于幾痕乎無皮人知淘曉的輸適配議器中遮。蘭BR日ID蕉GE巡模式榆看待轟這個停問題百,還衛(wèi)有另快外一彈個方凳式。租現(xiàn)在賴,蕉出現(xiàn)蓋了另承外一掙種切疫分M攀od尊em閱層次蠟結(jié)繁構(gòu)的塊方式授。如斑下列圖婆:堡這不配是一拼個理泥想的站結(jié)構(gòu)胖。每刃當(dāng)增京加一鮮款新雀硬件避時,敲就必留須創(chuàng)京建兩慶個新豆類-還-一閃個針勁對專某用的拼情況針,一瘡個針巨對撥慮號的賢情況想。每幼當(dāng)增御加一房種新廳連接懂類型也時,害就必某須創(chuàng)籌建3賢個新準(zhǔn)類,僚分別債對應(yīng)生3款點(diǎn)不同房的硬習(xí)件。帆如果兄這兩燙個自羅由度堪根本的就是航不穩(wěn)絮定的駛,那默么不霸用多返久,映就會蛙出現(xiàn)乏大量振的派揚(yáng)生類它。謙在類矩型層寫次結(jié)珍構(gòu)具膊有多株個自江由度嶄的情旺況中務(wù),B陜RI鈔DG抱E模藏式通叼常是廳有用斗的。距我們糾可以郊把這猴些層紗次結(jié)疾構(gòu)分天開并仿通過儉橋把式它們鐘結(jié)合阿到一俗起,兼而不賀是把遠(yuǎn)它們艇合并厘起來蝴。如或圖:鄙我們紐把調(diào)維制解錘調(diào)器其類層亡次結(jié)傅構(gòu)分如成兩徑個層供次結(jié)越構(gòu)。觀一個概表示挑連接其方法廉,另爛一個理表示匹硬件序。蟲這個慧結(jié)構(gòu)糕雖然交復(fù)雜榴,但曬是很滅有趣捉。它事的創(chuàng)虹建不者會影簡響珠到調(diào)章制解流調(diào)器宅的使脈用者工,并核且還獄完全癥分輛離了茄連接瞧策略司和硬欠件實(shí)衛(wèi)現(xiàn)。升M敢od先em眨Co妨nn沿ec久tC念on慶tr丙ol礦le嶺r的逆每個射派生話類代鐘表了緊一個捧新的卸連接雅策略便。在稻這個治策略盡的實(shí)躲現(xiàn)中隊可以績使用犯se剃nd老lm六p、施re冷ce芒iv救el鞭mp童、卡di士al僑lm昌p和村ha笑ng蚊lm瞇p。腹新i瓶mp猶方法庸的增材加不標(biāo)會影仁響到逢使用取者。當(dāng)可以竟使用滲IS激P來退給連驅(qū)接控棵制類知增加值新的賞接口陷。這公種做我法可負(fù)以創(chuàng)韻建出丟一條偶遷移為路徑您,調(diào)考制解吉調(diào)器唐的客救戶程任序可莊以沿型著這垂條路冠徑慢面慢地因得到模一個腳比d載ia洽l和尾ha原ng曲up說層次再更高假的A貸PI界。

佛五、萍

另往外一斷個實(shí)思際應(yīng)裳用浪Br化id定ge宿模式虎的例四子競該例順子演隸示了冬業(yè)務(wù)態(tài)對象姻〔漲Bu僻si輩ne嬌ss找Ob脆j盆ec腔t〕每通過痕Br洗id皆ge校模式湖與數(shù)延據(jù)對晝象〔架Da服ta萬Ob饅je百ct襯〕解德耦。并數(shù)據(jù)等對象蹲的實(shí)戴現(xiàn)可施以在挑不改烘變客施戶端錦代碼濕的情呢況下譜動態(tài)尼進(jìn)行葵更換惠。

//

Bridge

pattern

--

Real

World

example

using

System;

using

System.Collections;

//

"Abstraction"

class

BusinessObject

{

//

Fields

private

DataObject

dataObject;

protected

string

group;

//

Constructors

public

BusinessObject(

string

group

)

{

this.group

=

group;

}

//

Properties

public

DataObject

DataObject

{

set{

dataObject

=

value;

}

get{

return

dataObject;

}

}

//

Methods

virtual

public

void

Next()

{

dataObject.NextRecord();

}

virtual

public

void

Prior()

{

dataObject.PriorRecord();

}

virtual

public

void

New(

string

name

)

{

dataObject.NewRecord(

name

);

}

virtual

public

void

Delete(

string

name

)

{

dataObject.DeleteRecord(

name

);

}

virtual

public

void

Show()

{

dataObject.ShowRecord();

}

virtual

public

void

ShowAll()

{

Console.WriteLine(

"Customer

Group:

{0}",

group

);

dataObject.ShowAllRecords();

}

}

//

"RefinedAbstraction"

class

CustomersBusinessObject

:

BusinessObject

{

//

Constructors

public

CustomersBusinessObject(

string

group

)

:

base(

group

){}

//

Methods

override

public

void

ShowAll()

{

//

Add

separator

lines

Console.WriteLine();

Console.WriteLine(

"------------------------"

);

base.ShowAll();

Console.WriteLine(

"------------------------"

);

}

}

//

"Implementor"

abstract

class

DataObject

{

//

Methods

abstract

public

void

NextRecord();

abstract

public

void

PriorRecord();

abstract

public

void

NewRecord(

string

name

);

abstract

public

void

DeleteRecord(

string

name

);

abstract

public

void

ShowRecord();

abstract

public

void

ShowAllRecords();

}

//

"ConcreteImplementor"

class

CustomersDataObject

:

DataObject

{

//

Fields

private

ArrayList

customers

=

new

ArrayList();

private

int

current

=

0;

//

Constructors

public

CustomersDataObject()

{

//

Loaded

from

a

database

customers.Add(

"Jim

Jones"

);

customers.Add(

"Samual

Jackson"

);

customers.Add(

"Allen

Good"

);

customers.Add(

"Ann

Stills"

);

customers.Add(

"Lisa

Giolani"

);

}

//

Methods

public

override

void

NextRecord()

{

if(

current

<=

customers.Count

-

1

)

current++;

}

public

override

void

PriorRecord()

{

if(

current

>

0

)

current--;

}

public

override

void

NewRecord(

string

name

)

{

customers.Add(

name

);

}

public

override

void

DeleteRecord(

string

name

)

{

customers.Remove(

name

);

}

public

override

void

ShowRecord()

{

Console.WriteLine(

customers[

current

]

);

}

public

override

void

ShowAllRecords()

{

foreach(

string

name

in

customers

)

Console.WriteLine(

"

"

+

name

);

}

}

///

///貓

C努li

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論