MVC架構(gòu)開發(fā)綜述.doc_第1頁(yè)
MVC架構(gòu)開發(fā)綜述.doc_第2頁(yè)
MVC架構(gòu)開發(fā)綜述.doc_第3頁(yè)
MVC架構(gòu)開發(fā)綜述.doc_第4頁(yè)
MVC架構(gòu)開發(fā)綜述.doc_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MVC 架構(gòu)開發(fā)綜述MVC 架構(gòu)開發(fā)一、什么是模式?什么是框架?1、什么是模式?模式,即 pattern 。其實(shí)就是解決某一類問題的方法論。你把解決某類問題的方法總結(jié)歸納到理論高度,那就是模式。Alexander給出的經(jīng)典定義是:每個(gè)模式都描述了一個(gè)在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數(shù)次地使用那些已有的解決方案,無需在重復(fù)相同的工作。模式有不同的領(lǐng)域,建筑領(lǐng)域有建筑模式,軟件設(shè)計(jì)領(lǐng)域也有設(shè)計(jì)模式。當(dāng)一個(gè)領(lǐng)域逐漸成熟的時(shí)候,自然會(huì)出現(xiàn)很多模式。2、什么是框架?框架,即 framework 。其實(shí)就是某種應(yīng)用的半成品,就是一組組件,供你選用完成你

2、自己的系統(tǒng)。簡(jiǎn)單說就是使用別人搭好的舞臺(tái),你來做表演。而且,框架一般是成熟的,不斷升級(jí)的軟件。3、為什么要用模式?因?yàn)槟J绞且环N指導(dǎo),在一個(gè)良好的指導(dǎo)下,有助于你完成任務(wù),有助于你作出一個(gè)優(yōu)良的設(shè)計(jì)方案,達(dá)到事半功倍的效果。而且會(huì)得到解決問題的最佳辦法。為什么要用框架?因?yàn)檐浖到y(tǒng)發(fā)展到今天已經(jīng)很復(fù)雜了,特別是服務(wù)器端軟件,設(shè)計(jì)到的知識(shí),內(nèi)容,問題太多。在某些方面使用別人成熟的框架,就相當(dāng)于讓別人幫你完成一些基礎(chǔ)工作,你只需要集中精力完成系統(tǒng)的業(yè)務(wù)邏輯設(shè)計(jì)。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細(xì)節(jié)問題,比如,事物處理,安全性,數(shù)據(jù)流控制等問題。還有框架一般都經(jīng)過很多人使用,所以結(jié)構(gòu)很

3、好,所以擴(kuò)展性也很好,而且它是不斷升級(jí)的,你可以直接享受別人升級(jí)代碼帶來的好處??蚣芤话闾幵诘蛯討?yīng)用平臺(tái)(如 J2EE )和高層業(yè)務(wù)邏輯之間的中間層。軟件為什么要分層?為了實(shí)現(xiàn) 高內(nèi)聚、低耦合 。把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源 總之好處很多啦二、 MVC 架構(gòu)開發(fā)MVC 是一種軟件開發(fā)架構(gòu),它包含了很多的設(shè)計(jì)模式,最為密切的有以下3 種:Observer (觀察者模式) 、Composite(合成模式)和Strategy (策略模式) 。本節(jié)主要論述MVC架構(gòu)的原理、優(yōu)缺點(diǎn)以及MVC 為 Web 應(yīng)用程序帶來的好處。1、什么是MVC 架構(gòu)模型( Model )視圖(

4、View )控制器( Controller )即為 MVC ,MVC 在八十年代為編程語(yǔ)言 Smalltalk 80 發(fā)明的一種軟件架構(gòu)模式,至今已被廣泛使用。模型視圖控制器模式是一個(gè)有用的工具箱,但它也存在一些不足。2、 MVC 工作原理MVC 是一個(gè)設(shè)計(jì)模式,它使應(yīng)用程序的輸入、處理和輸出強(qiáng)制性分開,使得軟件可維護(hù)性、可擴(kuò)展性、靈活性以及封裝性得到提高。使用MVC 應(yīng)用程序被分成三個(gè)核心部件:M (模型)、 V(視圖)、 C (控制器)。模型是所有的商業(yè)邏輯代碼片段所在。視圖表示數(shù)據(jù)在屏幕上的顯示??刂破魈峁┨幚磉^程控制,它在模型和視圖之間起連接作用。控制器本身不輸出任何信息和做任何處理,

5、它只負(fù)責(zé)把用戶的請(qǐng)求轉(zhuǎn)成針對(duì) Model 的操作,和調(diào)用相應(yīng)的視圖來顯示Model處理后的數(shù)據(jù)。三者之間關(guān)系。MVC ( Model-View-Controller)把系統(tǒng)的組成分解為M(模型)、V(視圖)、C(控制器)三種部件。下面分別對(duì)這三個(gè)核心部件進(jìn)行介紹。模型模型表示企業(yè)數(shù)據(jù)和業(yè)務(wù)規(guī)則。在MVC 的三個(gè)部件中,模型擁有最多的處理任務(wù)。被模型返回的數(shù)據(jù)是中立的,就是說模型與數(shù)據(jù)格式無關(guān),這樣一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。由于應(yīng)用于模型的代碼只需寫一次就可以被多個(gè)視圖重用,所以減少了代碼的重復(fù)性。視圖視圖是用戶可以看到并與之交互的界面。視圖就是由HTML元素組成的界面,HTML 依舊在視圖

6、中扮演著重要的角色,但一些新的技術(shù)已層出不窮,它們包括MacromediaFlash、XHTML、XML/XSL、WML等一些標(biāo)識(shí)語(yǔ)言和WebServices等。如何處理應(yīng)用程序的界面變得越來越有挑戰(zhàn)性。MVC有一個(gè)突出的優(yōu)點(diǎn)是能為應(yīng)用程序處理很多不同的視圖,在視圖中其實(shí)沒有真正的處理發(fā)生,不管這些數(shù)據(jù)是聯(lián)機(jī)存儲(chǔ)的還是本地儲(chǔ)存,作為視圖來講,它只是作為一種輸出數(shù)據(jù)并允許用戶操縱的方式??刂破鳜F(xiàn)在總結(jié) VC 的處理過程,首先控制器接收用戶的請(qǐng)求,并決定應(yīng)該調(diào)用哪個(gè)模型來進(jìn)行處理,然后模型用業(yè)務(wù)邏輯來處理用戶的請(qǐng)求并返回?cái)?shù)據(jù),最后控制器用相應(yīng)的視圖格式化模型返回的數(shù)據(jù),并通過表示層呈現(xiàn)給用戶。三、

7、為什么要使用MVC 架構(gòu)ASP.NET 提供了一個(gè)很好的實(shí)現(xiàn)這種經(jīng)典設(shè)計(jì)模式的環(huán)境。程序人員通過在ASPX 頁(yè)面中開發(fā)用戶接口來實(shí)現(xiàn)視圖,控制器的功能在邏輯功能代碼(.cs )中實(shí)現(xiàn),模型通常對(duì)應(yīng)系統(tǒng)的業(yè)務(wù)部分。在ASP.NET中實(shí)現(xiàn)這種設(shè)計(jì)而提供的一個(gè)多層系統(tǒng),將數(shù)據(jù)(模型)從對(duì)其操作的動(dòng)作(控制器)分離出來可以設(shè)計(jì)一個(gè)與后臺(tái)存儲(chǔ)數(shù)據(jù)無關(guān)的系統(tǒng),就MVC結(jié)構(gòu)的本質(zhì)而言,它是一種解決耦合系統(tǒng)問題的方法。在 ASP.NET 中編寫 MVC 模式具有極其良好的可擴(kuò)展性。它可以輕松實(shí)現(xiàn)以下功能:實(shí)現(xiàn)一個(gè)模型的多個(gè)視圖采用多個(gè)控制器當(dāng)模型改變時(shí),所有視圖將自動(dòng)刷新所有的控制器將相互獨(dú)立工作這就是 MV

8、C 架構(gòu)的好處,只需在以前的程序上稍作修改或增加新的類, 即可增添程序的功能。 以前開發(fā)的類可以重用,而程序結(jié)構(gòu)根本不再需要改變,各類之間相互獨(dú)立,便于團(tuán)體開發(fā),提高開發(fā)效率。下面介紹一下使用 MVC 架構(gòu)的優(yōu)點(diǎn):1、提高代碼重用率最重要的一點(diǎn)是多個(gè)視圖能共享一個(gè)模型,無論用戶想要Flash 界面或是 WAP 界面;用一個(gè)模型就能處理它們。由于已經(jīng)將數(shù)據(jù)和業(yè)務(wù)規(guī)則從表示層分開,所以可以最大化的重用代碼。2、提高程序的可維護(hù)性因?yàn)槟P褪亲园?,并且與控制器和視圖相分離,所以很容易改變數(shù)據(jù)層和業(yè)務(wù)規(guī)則。例如, 把數(shù)據(jù)庫(kù)從SQLServer移植到 Oracle ,只需改變模型即可。 一旦正確的實(shí)現(xiàn)

9、了模型,不管數(shù)據(jù)來自哪里,視圖都會(huì)正確的顯示它們。MVC 架構(gòu)的運(yùn)用,使得程序的三個(gè)部件相互對(duì)立,大大提高了程序的可維護(hù)性。3、有利于團(tuán)隊(duì)開發(fā)在開發(fā)過程中,可以更好地分工,更好地協(xié)作。有利于開發(fā)出高質(zhì)量的軟件。 良好的項(xiàng)目架構(gòu)設(shè)計(jì), 將減少編碼工作量。采用 MVC 結(jié)構(gòu)和代碼生成器, 是大多數(shù) Web 應(yīng)用程序的理想選擇。部分模型( Model )和存儲(chǔ)過程一般可用工具自動(dòng)生成。控制器( Controller )比較穩(wěn)定,一般由架構(gòu)師(或經(jīng)驗(yàn)豐富程序人員)完成;那么整個(gè)項(xiàng)目需要手動(dòng)編寫代碼的地方就只有視圖 (View) 了。在這種模式下,個(gè)人能力不是特別重要,只要懂點(diǎn)語(yǔ)法基礎(chǔ)的人都可以編寫,無

10、論項(xiàng)目成員寫出什么樣的代碼,都在項(xiàng)目管理者的可控范圍內(nèi)。即使開放項(xiàng)目途中人員流動(dòng),也不會(huì)有太大問題。在個(gè)人能力不均衡的團(tuán)隊(duì)開發(fā)中,采用 MVC 開發(fā)是非常理想的。另外, MVC 架構(gòu)可以實(shí)現(xiàn)一個(gè)模型、兩個(gè)視圖和一個(gè)控制器的程序。下面將討論如何實(shí)現(xiàn)一個(gè)模型、兩個(gè)視圖和一個(gè)控制器的程序。其中模型類及視圖類根本不需要改變,與前面的完全一樣,這就是面向?qū)ο缶幊痰暮锰?。?duì)于控制器中的類,只需要增加另一個(gè)視圖,并與模型發(fā)生關(guān)聯(lián)即可。同樣也可以實(shí)現(xiàn)其他形式的MVC 。例如:一個(gè)模型、兩個(gè)視圖和兩個(gè)控制器。從上面可以看出,通過 MVC 模式實(shí)現(xiàn)的應(yīng)用程序具有極其良好的可擴(kuò)展性,是 ASP.NET 面向?qū)ο缶幊?/p>

11、的未來方向。四、表示層業(yè)務(wù)邏輯層數(shù)據(jù)訪問層1、什么是三層架構(gòu)所謂的三層開發(fā)就是將系統(tǒng)的整個(gè)業(yè)務(wù)應(yīng)用劃分為表示層業(yè)務(wù)邏輯層數(shù)據(jù)訪問層,這樣有利于系統(tǒng)的開發(fā)、維護(hù)、部署和擴(kuò)展。分層是為了實(shí)現(xiàn) 高內(nèi)聚、低耦合 。采用 分而治之 的思想,把問題劃分開來各個(gè)解決,易于控制,易于延展,易于分配資源。表示層:負(fù)責(zé)直接跟用戶進(jìn)行交互,一般也就是指系統(tǒng)的界面,用于數(shù)據(jù)錄入,數(shù)據(jù)顯示等。意味著只做與外觀顯示相關(guān)的工作,不屬于他的工作不用做。業(yè)務(wù)邏輯層:用于做一些有效性驗(yàn)證的工作,以更好地保證程序運(yùn)行的健壯性。如完成數(shù)據(jù)添加、修改和查詢業(yè)務(wù)等;不允許指定的文本框中輸入空字符串,數(shù)據(jù)格式是否正確及數(shù)據(jù)類型驗(yàn)證;用戶的

12、權(quán)限的合法性判斷等等,通過以上的諸多判斷以決定是否將操作繼續(xù)向后傳遞,盡量保證程序的正常運(yùn)行。數(shù)據(jù)訪問層:顧名思義,就是用于專門跟數(shù)據(jù)庫(kù)進(jìn)行交互。執(zhí)行數(shù)據(jù)的添加、刪除、修改和顯示等。需要強(qiáng)調(diào)的是,所有的數(shù)據(jù)對(duì)象只在這一層被引用,如 System.Data.SqlClient等,除數(shù)據(jù)層之外的任何地方都不應(yīng)該出現(xiàn)這樣的引用。ASP.NET可以使用 .NET 平臺(tái)快速方便地部署三層架構(gòu)。ASP.NET 革命性的變化是在網(wǎng)頁(yè)中也使用基于事件的處理,可以指定處理的后臺(tái)代碼文件,可以使用C#、VB、C+ 和J# 作為后臺(tái)代碼的語(yǔ)言。.NET 中可以方便的實(shí)現(xiàn)組件的裝配,后臺(tái)代碼通過命名空間可以方便的使用

13、自己定義的組件。顯示層放在ASPX 頁(yè)面中,數(shù)據(jù)庫(kù)操作和邏輯層用組件或封裝類來實(shí)現(xiàn),這樣就很方便的實(shí)現(xiàn)了三層架構(gòu)。2、為什么使用三層架構(gòu)對(duì)于一個(gè)簡(jiǎn)單的應(yīng)用程序來說,代碼量不是很多的情況下,一層結(jié)構(gòu)或二層結(jié)構(gòu)開發(fā)完全夠用,沒有必要將其復(fù)雜化,如果對(duì)一個(gè)復(fù)雜的大型系統(tǒng),設(shè)計(jì)為一層結(jié)構(gòu)或二層結(jié)構(gòu)開發(fā),那么這樣的設(shè)計(jì)存在很嚴(yán)重缺陷。下面會(huì)具體介紹,分層開發(fā)其實(shí)是為大型系統(tǒng)服務(wù)的。在開發(fā)過程中,初級(jí)程序人員出現(xiàn)相似的功能經(jīng)常復(fù)制代碼,那么同樣的代碼為什么要寫那么多次?不但使程序變得冗長(zhǎng),更不利于維護(hù),一個(gè)小小的修改或許會(huì)涉及很多頁(yè)面,經(jīng)常導(dǎo)致異常的產(chǎn)生使程序不能正常運(yùn)行。最主要的面向?qū)ο蟮乃枷霙]有得到絲

14、毫的體現(xiàn),打著面向?qū)ο蟮幕献訁s依然走著面向過程的道路。意識(shí)到這樣的問題,初級(jí)程序人員開始將程序中一些公用的處理程序?qū)懗晒卜椒ǎ庋b在類中,供其它程序調(diào)用。例如寫一個(gè)數(shù)據(jù)操作類,對(duì)數(shù)據(jù)操作進(jìn)行合理封裝,在數(shù)據(jù)庫(kù)操作過程中,只要類中的相應(yīng)方法(數(shù)據(jù)添加、修改、查詢等)可以完成特定的數(shù)據(jù)操作,這就是數(shù)據(jù)訪問層,不用每次操作數(shù)據(jù)庫(kù)時(shí)都寫那些重復(fù)性的數(shù)據(jù)庫(kù)操作代碼。在新的應(yīng)用開發(fā)中,數(shù)據(jù)訪問層可以直接拿來用。面向?qū)ο蟮娜筇匦灾坏姆庋b性在這里得到了很好的體現(xiàn)。讀者現(xiàn)在似乎找到了面向?qū)ο蟮母杏X,代碼量較以前有了很大的減少,而且修改的時(shí)候也比較方便,也實(shí)現(xiàn)了代碼的重用性。下面舉兩個(gè)案例,解釋一下為什么要

15、使用三層架構(gòu)。案例一:數(shù)據(jù)庫(kù)系統(tǒng)軟件由于數(shù)據(jù)量的不斷增加,數(shù)據(jù)庫(kù)由 Access 變成了 SQLServer 數(shù)據(jù)庫(kù),這樣原來的數(shù)據(jù)訪問層失效了,數(shù)據(jù)操作對(duì)象發(fā)生了變化,并且頁(yè)面中涉及數(shù)據(jù)對(duì)象的地方也要進(jìn)行修改,因?yàn)樵瓉砜赡軙?huì)使用OleDbDataReader對(duì)象將數(shù)據(jù)傳遞給顯示頁(yè)面,現(xiàn)在都得換成 SqlDataReader 對(duì)象, SQLServer 和 Access 支持的數(shù)據(jù)類型也不一致,在顯示數(shù)據(jù)時(shí)進(jìn)行的數(shù)據(jù)轉(zhuǎn)換也要進(jìn)行修改,這是其中一種情況。案例二:由于特殊情況需要,把 Web 形式的項(xiàng)目改造成Windows應(yīng)用,此時(shí)需要做多少修改呢?如果在Aspx.cs 中占據(jù)了大量代碼,或者還有

16、部分代碼存在于Aspx 中,那么整個(gè)系統(tǒng)是否需要重新來開發(fā)呢?在上面的案例中是否體會(huì)到了沒有分層開發(fā)模式的缺陷呢?是否碰到過這樣的情況呢?這都是由設(shè)計(jì)不合理造成的,多層開發(fā)架構(gòu)的出現(xiàn)可以很好地解決該問題,通過程序架構(gòu)進(jìn)行合理的分層,將極大地提高程序的通用性。3、使用三層架構(gòu)開發(fā)的優(yōu)點(diǎn)使用三層架構(gòu)開發(fā)有以下優(yōu)點(diǎn):從開發(fā)角度和應(yīng)用角度來看,三層架構(gòu)比二層架構(gòu)或單層架構(gòu)都有更大的優(yōu)勢(shì)。三層架構(gòu)適合團(tuán)隊(duì)開發(fā),每人可以有不同的分工,協(xié)同工作使效率倍增。開發(fā)二層或單層應(yīng)用程序時(shí),每個(gè)開發(fā)人員都應(yīng)對(duì)系統(tǒng)有較深的理解,能力要求很高,開發(fā)三層應(yīng)用程序時(shí),則可以結(jié)合多方面的人才,只需少數(shù)人對(duì)系統(tǒng)全面了解即可,從一

17、定程度降低了開發(fā)的難度。三層架構(gòu)可以更好的支持分布式計(jì)算環(huán)境。邏輯層的應(yīng)用程序可以在多個(gè)計(jì)算機(jī)上運(yùn)行,充分利用網(wǎng)絡(luò)的計(jì)算功能。分布式計(jì)算的潛力巨大,遠(yuǎn)比升級(jí)CPU 有效。美國(guó)人曾利用分式計(jì)算解密,幾個(gè)月就破解了據(jù)稱永遠(yuǎn)都破解不了的密碼。三層架構(gòu)的最大優(yōu)點(diǎn)是它的安全性。用戶只能通過邏輯層來訪問數(shù)據(jù)層,減少了入口點(diǎn),把很多危險(xiǎn)的系統(tǒng)功能都屏蔽了。4、三層架構(gòu)的種類目前,團(tuán)隊(duì)開發(fā)人員在開發(fā)項(xiàng)目時(shí),大多都使用分層開發(fā)架構(gòu)設(shè)計(jì),最常見的就是三層架構(gòu),目的在于使各個(gè)層之間只能夠被它相鄰的層產(chǎn)生影響,但是這個(gè)限制常常在使用多層開發(fā)的時(shí)候被違反,這對(duì)系統(tǒng)的開發(fā)是有害的。三層架構(gòu)按驅(qū)動(dòng)模式可劃分三種:數(shù)據(jù)層驅(qū)動(dòng)

18、模式、陳述層驅(qū)動(dòng)模式和隔離驅(qū)動(dòng)模式,其中隔離驅(qū)動(dòng)模式開發(fā)最為重要。下面通過三種模式的對(duì)比,介紹隔離驅(qū)動(dòng)模式的重要性。數(shù)據(jù)層驅(qū)動(dòng)模式所謂的數(shù)據(jù)層驅(qū)動(dòng)模式,就是先設(shè)計(jì)數(shù)據(jù)層,陳述層圍繞數(shù)據(jù)層展開,一旦完成了數(shù)據(jù)層和陳述層,業(yè)務(wù)層就圍繞數(shù)據(jù)層展開。因?yàn)殛愂鰧邮菄@數(shù)據(jù)層展開的,這將會(huì)使陳述層中的約束不準(zhǔn)確,并且限制了業(yè)務(wù)層的變更。由于業(yè)務(wù)層受到限制,一些簡(jiǎn)單變化可以通過 SQL 查詢和存儲(chǔ)過程來實(shí)現(xiàn)。這種模式非常的普遍,它和傳統(tǒng)的客戶服務(wù)端開發(fā)相似,并且是圍繞已經(jīng)存在的數(shù)據(jù)庫(kù)設(shè)計(jì)的。由于陳述層是圍繞數(shù)據(jù)層設(shè)計(jì)的,它常常是憑直覺模仿數(shù)據(jù)層的實(shí)際結(jié)構(gòu)。常常存在一種額外的反饋循環(huán)在陳述層到數(shù)據(jù)之間,當(dāng)在設(shè)計(jì)陳述層不容易實(shí)現(xiàn)的時(shí)候常常會(huì)去修改數(shù)據(jù)層,也就形成了這種反饋循環(huán)。開發(fā)者請(qǐng)求修改數(shù)據(jù)庫(kù)方便陳述層的開發(fā),但是對(duì)數(shù)據(jù)層的設(shè)計(jì)卻是有害的。這種改變是人為的而沒考慮到其他需求的限制。這種修改經(jīng)常會(huì)違反至少損害數(shù)據(jù)的特有規(guī)則,導(dǎo)致不必要的數(shù)據(jù)冗余和數(shù)據(jù)的非標(biāo)準(zhǔn)化。陳述層驅(qū)動(dòng)模式陳述層驅(qū)動(dòng)模式是數(shù)據(jù)層圍繞陳述層展開的。業(yè)務(wù)層的完成一般是通過簡(jiǎn)單的SQL 查詢和很少的變化或者隔離。由于數(shù)據(jù)庫(kù)的設(shè)計(jì)是為了陳述層的方便,并非從數(shù)據(jù)層設(shè)計(jì)方面考慮,所以數(shù)據(jù)庫(kù)的設(shè)計(jì)在性能上通常很低。陳

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論