Layer Diagram
這是我們要求的架構(gòu),接著我們可以在解決方案中再加入四個(gè)方案,第一個(gè)方案是一個(gè) Console Application 項(xiàng)目,名稱為 Client。至于其他三個(gè)項(xiàng)目則都是 Class Library 項(xiàng)目,名稱分別是 Interface、Implementation、Creator。我這里用的例子是 VB,架構(gòu)是和語(yǔ)言無(wú)關(guān)的,所以同樣的功能也適用在 C# 上。 我這里要建立的是一個(gè)簡(jiǎn)單的例子,我們要定義一個(gè)標(biāo)準(zhǔn)的訊息接口做為數(shù)據(jù)定義,以及一個(gè)方法接口用以傳回訊息。所以我打開(kāi) Interface 接口項(xiàng)目,將原本默認(rèn)的 Class1 改成 IMessageReceiver,原本預(yù)設(shè)的宣告是 Class,當(dāng)我改成 Interface 時(shí),就會(huì)出現(xiàn)宣告是 Interface,但結(jié)尾是 Class 的情況。于是 2010 除了如過(guò)往透過(guò)破折線標(biāo)示文法錯(cuò)誤之外,同時(shí)也透過(guò) Smart Tag 提供修正的選項(xiàng)。把鼠標(biāo)停在破折線標(biāo)示區(qū),就會(huì)出現(xiàn) Smart Tag,然后我可以選擇 Insert the missing "End Interface" 的命令。點(diǎn)選之后就會(huì)自動(dòng)補(bǔ)上正確的結(jié)尾敘述,我們?cè)侔讯嘤嗟?End Class 刪除就可以。
Smart Tag
在 IMessageReceiver 界面中,我們要定義一個(gè)僅讀的 Message 屬性,它的型別也是一個(gè)接口 ─ IMessage。所以我們輸入以下的敘述: ReadOnly Property Message As IMessage 很顯然的,IMessage 是一個(gè)我們還未定義的訊息接口,所以下方會(huì)出現(xiàn)警告的破折號(hào)。如果我們檢視一下對(duì)應(yīng)的 Smart Tag,會(huì)發(fā)現(xiàn)其中有幾個(gè)命令,有一個(gè)是 Generate "Interface IMessage" (如果是 C#,可能是不一樣的命令,可以選擇Generate new type 命令透過(guò)對(duì)話盒指定要產(chǎn)生的是新接口)。我們只要選擇這個(gè)命令,就會(huì)自動(dòng)產(chǎn)生另一個(gè)檔案并宣告這個(gè)接口。這個(gè)新功能可以讓我們不用先定義新方法或型別,以更直覺(jué)更快速的方式建立正確的宣告。
好了,接口定義完畢,接著要建立實(shí)做的方法了。展開(kāi) Implementation 項(xiàng)目,加入對(duì) Interface 的參考,因?yàn)槲覀円獙?shí)做支持 IMessageReceiver 接口的類別。將預(yù)設(shè)的 Class1 類別改名稱為 MessageReceiver,然后加上實(shí)做的敘述: Implements IMessageReceiver 由于我們并未匯入 Interface 命名空間,所以上述的宣告中 IMessageReceiver 的部份會(huì)被標(biāo)示錯(cuò)誤。同樣透過(guò) Smart Tag,看到了幾個(gè)選項(xiàng),一個(gè)是匯入正確的命名空間,一個(gè)是采用全稱來(lái)宣告型別。贊別,現(xiàn)在寫(xiě)程序也可以像在 Microsoft Word 里面寫(xiě)文章一樣利用 Smart Tag 進(jìn)行修正。我選擇了 Import Interface 命令 (在 C# 中就是 using Interface 了),就自動(dòng)在檔案開(kāi)發(fā)加上匯入的宣告。這個(gè)功能真的太酷了!
由于我們還要實(shí)做對(duì)應(yīng)的接口屬性 Message,目前的情況是還沒(méi)有實(shí)做,所以設(shè)計(jì)師還是會(huì)提示錯(cuò)誤。我在 Implements IMesasgeReceiver 后方敲下 Enter,讓系統(tǒng)自動(dòng)幫我們建立一個(gè)實(shí)做的宣告 (如果是 C# 可能要透過(guò) Smart Tag 產(chǎn)生),并且指定 NotImplementException,因?yàn)槲覀冎皇莻(gè)例子,并沒(méi)有真正的傳回邏輯。到這里,算是實(shí)做的部份完成。
出處:相關(guān)論壇
責(zé)任編輯:bluehearts
上一頁(yè) VS2010 Layer Diagram 實(shí)例教程 [1] 下一頁(yè) VS2010 Layer Diagram 實(shí)例教程 [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|