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

下載本文檔

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

文檔簡介

學籍管理系統(tǒng)的開發(fā)體驗MVC課前準備

預習C#數(shù)據(jù)庫的內(nèi)容下載數(shù)據(jù)庫腳本下載老師的代碼MVC框架的介紹MVC全名是ModelViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟件設(shè)計典范,用一種業(yè)務邏輯、數(shù)據(jù)、界面顯示分離的方法組織代碼,將業(yè)務邏輯聚集到一個部件里面,在改進和個性化定制界面及用戶交互的同時,不需要重新編寫業(yè)務邏輯。MVC被獨特的發(fā)展起來用于映射傳統(tǒng)的輸入、處理和輸出功能在一個邏輯的圖形化用戶界面的結(jié)構(gòu)中。M-V-CM是指業(yè)務模型,V是指用戶界面,C則是控制器,使用MVC的目的是將M和V的實現(xiàn)代碼分離,從而使同一個程序可以使用不同的表現(xiàn)形式。C存在的目的則是確保M和V的同步,一旦M改變,V應該同步更新。MVC的優(yōu)點耦合性低重用性高生命周期成本低部署快有利軟件工程化管理代碼分塊(硬性分塊)MVC學籍管理系統(tǒng)ModelViewControllerDomainGUIRepositoryService類庫類庫(ClassLibrary)是一個綜合性的面向?qū)ο蟮目芍赜妙愋图希@些類型包括:接口、抽象類和具體類。將業(yè)務邏輯封裝在類庫中。你知道嗎?代碼結(jié)構(gòu)把業(yè)務邏輯和用戶圖形界面強行分離開來。DoMain領(lǐng)域模型DomainBase作為一個基類,School,ProfessionalClass,Student為三個子類。性別Sex用枚舉單獨定義一個枚舉類型。Domain模型的構(gòu)造領(lǐng)域模型是對領(lǐng)域內(nèi)的概念類或現(xiàn)實世界中對象的可視化表示。又稱概念模型、領(lǐng)域?qū)ο竽P?、分析對象模型?/p>

領(lǐng)域模型中的類都是一個實體。簡單說就是建立數(shù)據(jù)庫是主鍵配有ID的對象。

判斷下面有關(guān)學籍管理系統(tǒng)的名詞哪個是一個實體?(1)學生(5)性別(2)年級(6)姓名(3)班級(7)年齡(4)學院Domainbase基類的編寫基類的性質(zhì)子類都會繼承,所以要在基類中寫子類共有的東西。注意:基類和接口不同。繼承接口的子類要重寫所有接口中的abstruct(抽象)方法。IdNumNameDomainBASE子類的編寫domainBase有三個子類,School,ProfessionalClass和Student.根據(jù)數(shù)據(jù)庫確定三個子類的屬性。除了domainBase中定義的公共屬性之外,班級還有studentNum,SchoolId,Grade和MaxStudentNum等屬性;學生還有ClassId和Sex兩個屬性。用Student類的代碼做一個示例Domain擴展DoMain中出現(xiàn)了Sex的一個枚舉類型,規(guī)定了性別可能出現(xiàn)的幾種情況。定義了一個SexHelper類提供了Sex和String之間相互轉(zhuǎn)換的服務方法。publicclassSexHelper{publicstaticstringSexToString(Sexsex){…}publicstaticSexStringToSex(Stringsex){…}}討論我們單獨為性別定義了一個類型,后期編碼經(jīng)常需要把Sex轉(zhuǎn)換成string類型,其實我們直接把性別定義成string類型更為簡單。但這里引入了一個SexHelper類,提供他們之間的轉(zhuǎn)換服務。仔細看,類中的函數(shù)都是靜態(tài)的,這樣寫有什么好處?恭喜!領(lǐng)域模型完成了!接口層資源接口服務接口REPOSITORY接口類圖Service接口類圖休息一下,馬上回來!接下來我們要實現(xiàn)本項目的重點難點Repository。Repository資源層什么是Repository?按照最初提出者的介紹,它是銜接數(shù)據(jù)映射層和域之間的一個紐帶,作用相當于一個在內(nèi)存中的域?qū)ο蠹稀?蛻舳藢ο蟀巡樵兊囊恍嶓w進行組合,并把它們提交給Repository。對象能夠從Repository中移除或者添加,就好比這些對象在一個Collection對象上就行數(shù)據(jù)操作,同時映射層的代碼會對應的從數(shù)據(jù)庫中取出相應的數(shù)據(jù)。

非常形象地說,Repository就是一個倉庫管理員,我們想從倉庫中取出什么東西或在倉庫中存入什么東西,只要告訴倉庫管理員就可以了,倉庫管理員可以幫我們實現(xiàn)數(shù)據(jù)的搬運與管理。由于倉庫管理員的存在,我們感覺不到繁瑣的數(shù)據(jù)管理過程。

重在心法由于我們的水平問題和章節(jié)限制,我們不再深入講解Repository,我們只要體會Repository是一個怎樣的存在。在visualstudio中建立數(shù)據(jù)庫鼠標右擊UI解決方案,選擇添加-》新建項,彈出右邊的窗口。

建立數(shù)據(jù)庫鼠標雙擊新生成的數(shù)據(jù)庫文件看到左邊服務器資源管理器

連接數(shù)據(jù)庫點擊圈內(nèi)“打開文件”圖標打開數(shù)據(jù)庫腳本文件導入腳本選中資源管理器中的數(shù)據(jù)連接

點擊圈內(nèi)運行或連接腳本導入成功鼠標右擊服務器資源管理器數(shù)據(jù)連接的Database.mdf,選擇刷新,打開表文件夾,如果出現(xiàn)了Class、School、Student三個表項就代表腳本導入成功!獲取連接字符串雙擊解決方案管理器中的Database.mdf,在屬性欄中獲取連接字符串。打開UI里的App.config文件在里面創(chuàng)建數(shù)據(jù)庫連接接下來,我們就要開始寫rEPOSITORY類回顧repository,想想少了什么?

類中只定義了增刪查改之類的管理數(shù)據(jù)方法,并沒有連接數(shù)據(jù)庫的方法。怎么辦呢?定義一個“幫助”類左邊的圖是這個“幫助類”的類圖,從圖中我們可以看出,它添加了connectionString字段,獲取了數(shù)據(jù)庫連接,在它里面也定義了很多數(shù)據(jù)庫的執(zhí)行方法,它就像倉庫管理員的大腦一樣,類似于一個Controller?;仡^想一想ModelControllerSchoolRepositoryClassRepositoryStudentRepositorySqlDbHelperRepository中的Model和Controller插播一段:工廠模式(factory)工廠是對象初始化的一種方式,可用于大量對象的初始化。publicclassA{}publicclassB{}publicclassFactory1{publicstaticACreatA(){returnnewA();}publicstaticBCreatB(){returnnewB();}}publicclassFactory2{pubilcObjectCreat(inti){switch(i){case0:returnnewA();break;case1:returnnewB();break;}}}

兩種工廠Factory1factory2用到了類的靜態(tài)方法類的靜態(tài)方法屬于類,可以用類名直接調(diào)用初始化對象Objectoa=Factory1.CreatA();Objectob=Factory1.CreatB();用到了策略者模式需要先建立一個工廠類,然后用工廠類調(diào)用Creat()方法。策略者模式創(chuàng)建的類必須繼承自一個父類。A和B必須有同一個父類。初始化對象Factory2myFactory=newFactory2();Objectoa=myFactory.Creat(0);Objectob=myFactory.Creat(1);工廠類圖Service在本項目中,Service有三個接口,也有三個類分別繼承三個服務接口。Service隱藏了倉庫管理層,直接面向用戶從類圖中可看出來,服務字段中自動找了倉庫管理員,并進一步封裝倉庫管理的方法。讓用戶感覺不到倉庫管理層的存在,實現(xiàn)了讓用戶直接調(diào)用想要的服務。右圖是部分SchoolService類的代碼至此,業(yè)務邏輯終于

溫馨提示

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

最新文檔

評論

0/150

提交評論