學(xué)籍管理系統(tǒng)_第1頁(yè)
學(xué)籍管理系統(tǒng)_第2頁(yè)
學(xué)籍管理系統(tǒng)_第3頁(yè)
學(xué)籍管理系統(tǒng)_第4頁(yè)
學(xué)籍管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、體驗(yàn)MVC課前準(zhǔn)備 預(yù)習(xí)C#數(shù)據(jù)庫(kù)的內(nèi)容 下載數(shù)據(jù)庫(kù)腳本 下載老師的代碼MVC全名是Model View Controller,是模型(model)視圖(view)控制器(controller)的縮寫(xiě),一種軟件設(shè)計(jì)典范,用一種業(yè)務(wù)邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務(wù)邏輯聚集到一個(gè)部件里面,在改進(jìn)和個(gè)性化定制界面及用戶交互的同時(shí),不需要重新編寫(xiě)業(yè)務(wù)邏輯。MVC被獨(dú)特的發(fā)展起來(lái)用于映射傳統(tǒng)的輸入、處理和輸出功能在一個(gè)邏輯的圖形化用戶界面的結(jié)構(gòu)中。M是指業(yè)務(wù)模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實(shí)現(xiàn)代碼分離,從而使同一個(gè)程序可以使用不同的表現(xiàn)形式。C存在的目的則是

2、確保M和V的同步,一旦M改變,V應(yīng)該同步更新。耦合性耦合性低低重用性高重用性高生命周期生命周期成本低成本低部署快部署快有利軟件工程化管理有利軟件工程化管理MVC學(xué)籍管理系統(tǒng)ModelViewControllerDomainGUIRepositoryService類庫(kù)(Class Library)是一個(gè)綜合性的面向?qū)ο竺嫦驅(qū)ο蟮目芍赜每芍赜妙愋图?,這些類型包括:接口、抽象類和具體類。將業(yè)務(wù)邏輯封裝在類庫(kù)中。把業(yè)務(wù)邏輯和用戶圖形界面強(qiáng)行分離開(kāi)來(lái)。DomainBase作為一個(gè)基類,School, ProfessionalClass, Student為三個(gè)子類。性別Sex用枚舉單獨(dú)定義一個(gè)枚舉類型。

3、 領(lǐng)域模型是對(duì)領(lǐng)域內(nèi)的概念類或現(xiàn)實(shí)世界中對(duì)象的可視化表示。又稱概念模型、領(lǐng)域?qū)ο竽P?、分析?duì)象模型。 領(lǐng)域模型中的類都是一個(gè)實(shí)體。簡(jiǎn)單說(shuō)就是建立數(shù)據(jù)庫(kù)是主鍵配有ID的對(duì)象。 判斷下面有關(guān)學(xué)籍管理系統(tǒng)的名詞哪個(gè)是一個(gè)實(shí)體?(1)學(xué)生 (5)性別(2)年級(jí) (6)姓名(3)班級(jí) (7)年齡(4)學(xué)院 基類的性質(zhì)子類都會(huì)繼承,所以要在基類中寫(xiě)子類共有的東西。注意:基類和接口不同。繼承接口的子類要重寫(xiě)所有接口中的abstruct(抽象)方法。IdNumNamedomainBase有三個(gè)子類,School,ProfessionalClass和Student.根據(jù)數(shù)據(jù)庫(kù)確定三個(gè)子類的屬性。除了domain

4、Base中定義的公共屬性之外,班級(jí)還有studentNum,SchoolId,Grade和MaxStudentNum等屬性;學(xué)生還有ClassId和Sex兩個(gè)屬性。DoMain中出現(xiàn)了Sex的一個(gè)枚舉類型,規(guī)定了性別可能出現(xiàn)的幾種情況。定義了一個(gè)SexHelper類提供了Sex和String之間相互轉(zhuǎn)換的服務(wù)方法。public class SexHelper public static string SexToString(Sex sex) public static Sex StringToSex(String sex) 我們單獨(dú)為性別定義了一個(gè)類型,后期編碼經(jīng)常需要把Sex轉(zhuǎn)換成strin

5、g類型,其實(shí)我們直接把性別定義成string類型更為簡(jiǎn)單。但這里引入了一個(gè)SexHelper類,提供他們之間的轉(zhuǎn)換服務(wù)。仔細(xì)看,類中的函數(shù)都是靜態(tài)的,這樣寫(xiě)有什么好處?資源接口服務(wù)接口接下來(lái)我們要實(shí)現(xiàn)本項(xiàng)目的重點(diǎn)難點(diǎn)Repository。什么是Repository? 按照最初提出者的介紹,它是銜接數(shù)據(jù)映射層和域之間的一個(gè)紐帶,作用相當(dāng)于一個(gè)在內(nèi)存中的域?qū)ο蠹???蛻舳藢?duì)象把查詢的一些實(shí)體進(jìn)行組合,并把它們提交給Repository。對(duì)象能夠從Repository中移除或者添加,就好比這些對(duì)象在一個(gè)Collection對(duì)象上就行數(shù)據(jù)操作,同時(shí)映射層的代碼會(huì)對(duì)應(yīng)的從數(shù)據(jù)庫(kù)中取出相應(yīng)的數(shù)據(jù)。 非常形

6、象地說(shuō),Repository就是一個(gè)倉(cāng)庫(kù)管理員,我們想從倉(cāng)庫(kù)中取出什么東西或在倉(cāng)庫(kù)中存入什么東西,只要告訴倉(cāng)庫(kù)管理員就可以了,倉(cāng)庫(kù)管理員可以幫我們實(shí)現(xiàn)數(shù)據(jù)的搬運(yùn)與管理。由于倉(cāng)庫(kù)管理員的存在,我們感覺(jué)不到繁瑣的數(shù)據(jù)管理過(guò)程。由于我們的水平問(wèn)題和章節(jié)限制,我們不再深入講解Repository,我們只要體會(huì)Repository是一個(gè)怎樣的存在。鼠標(biāo)右擊UI解決方案,選擇添加-新建項(xiàng),彈出右邊的窗口。鼠標(biāo)雙擊新生成的數(shù)據(jù)庫(kù)文件看到左邊服務(wù)器資源管理器 點(diǎn)擊圈內(nèi)“打開(kāi)文件”圖標(biāo)打開(kāi)數(shù)據(jù)庫(kù)腳本文件選中資源管理器中的數(shù)據(jù)連接 點(diǎn)擊圈內(nèi)運(yùn)行或連接鼠標(biāo)右擊服務(wù)器資源管理器數(shù)據(jù)連接的Database.mdf,選擇

7、刷新,打開(kāi)表文件夾,如果出現(xiàn)了Class、School、Student三個(gè)表項(xiàng)就代表腳本導(dǎo)入成功!雙擊解決方案管理器中的Database.mdf,在屬性欄中獲取連接字符串。打開(kāi)UI里的App.config文件在里面創(chuàng)建數(shù)據(jù)庫(kù)連接 類中只定義了增刪查改之類的管理數(shù)據(jù)方法,并沒(méi)有連接數(shù)據(jù)庫(kù)的方法。怎么辦呢?左邊的圖是這個(gè)“幫助類”的類圖,從圖中我們可以看出,它添加了connectionString字段,獲取了數(shù)據(jù)庫(kù)連接,在它里面也定義了很多數(shù)據(jù)庫(kù)的執(zhí)行方法,它就像倉(cāng)庫(kù)管理員的大腦一樣,類似于一個(gè)Controller。ModelControllerSchoolRepositoryClassRepos

8、itoryStudentRepositorySqlDbHelper工廠是對(duì)象初始化的一種方式,可用于大量對(duì)象的初始化。public class Apublic class Bpublic class Factory1 public static A CreatA() return new A(); public static B CreatB() return new B(); public class Factory2 pubilc Object Creat(int i) switch(i) case 0: return new A(); break; case 1: return new

9、B(); break; FACTORY1FACTORY2用到了類的靜態(tài)方法類的靜態(tài)方法屬于類,可以用類名直接調(diào)用初始化對(duì)象Object oa = Factory1.CreatA();Object ob = Factory1.CreatB();用到了策略者模式需要先建立一個(gè)工廠類,然后用工廠類調(diào)用Creat()方法。策略者模式創(chuàng)建的類必須繼承自一個(gè)父類。A和B必須有同一個(gè)父類。初始化對(duì)象Factory2 myFactory = new Factory2();Object oa = myFactory.Creat(0);Object ob = myFactory.Creat(1);在本項(xiàng)目中,Service有三個(gè)接口,也有三個(gè)類分別繼承三個(gè)服務(wù)接口。 從類圖中可看出來(lái),服務(wù)字段中自動(dòng)找了倉(cāng)庫(kù)管理員,并進(jìn)一步封裝倉(cāng)庫(kù)管理的方法。讓用戶感覺(jué)不到倉(cāng)庫(kù)管理層的存在,實(shí)現(xiàn)了讓用戶直接調(diào)用想要的服

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論