![機械設計及理論論文_第1頁](http://file4.renrendoc.com/view/8d11939c6bd59c1abd868fa6ce17c1a2/8d11939c6bd59c1abd868fa6ce17c1a21.gif)
![機械設計及理論論文_第2頁](http://file4.renrendoc.com/view/8d11939c6bd59c1abd868fa6ce17c1a2/8d11939c6bd59c1abd868fa6ce17c1a22.gif)
![機械設計及理論論文_第3頁](http://file4.renrendoc.com/view/8d11939c6bd59c1abd868fa6ce17c1a2/8d11939c6bd59c1abd868fa6ce17c1a23.gif)
![機械設計及理論論文_第4頁](http://file4.renrendoc.com/view/8d11939c6bd59c1abd868fa6ce17c1a2/8d11939c6bd59c1abd868fa6ce17c1a24.gif)
![機械設計及理論論文_第5頁](http://file4.renrendoc.com/view/8d11939c6bd59c1abd868fa6ce17c1a2/8d11939c6bd59c1abd868fa6ce17c1a25.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、分類號密級UDC碩士學位論文企業(yè)級應用中面向對象框架的研究學位申請人:xxx學科專業(yè):機械設計及理論指導教師:xxx論文答辯日期2005年月日學位授予日期答辯委員會主席評閱人AThesisSubmittedinPartialFulfillmentoftheRequirementsfortheDegreeofMasterofEngineeringResearchonObject-OrientedFrameworkofEnterpriseApplicationCandidate:FanJuyiMajor:MechanicalDesign&TheorySupervisor:Prof.HuYujinH
2、uazhongUniversityofScienceandTechnologyWuhan430074,P.R.ChinaMay,2004 摘要軟件復用是在軟件開發(fā)中避免重復勞動的解決方案。通過軟件復用,可以提高軟件開發(fā)的效率和質量。近十幾年來,面向對象技術出現并逐步成為主流技術,為軟件復用提供了基本的技術支持。軟件復用研究重新成為熱點,被視為解決軟件危機,提高軟件生產效率和質量的現實可行的途徑??蚣芗夹g的發(fā)展使軟件復用技術達到了一個新的階段,同時,企業(yè)級應用的發(fā)展對軟件復用技術提出了需求,并為軟件復用技術提供了新的實踐環(huán)境??蚣苁且粋€軟件產品的半成品,它含可變和不變部分,通過對可變部分的定制得
3、到不同的應用系統(tǒng)。由于當前通用的EJB是面向事務的重量級框架,本文提出了一種輕量級的面向領域模型的框架。本文以企業(yè)級應用和軟件復用技術為背景,提出了企業(yè)級應用的框架模型,闡述了框架的設計、算法以及實現。文章主要包括以下幾點:首先,講述現有程序開發(fā)的問題,提出采用框架技術的必要性。接著,對面向對象框架和設計模式進行了全面的探討。然后,通過抽象業(yè)務系統(tǒng)中核心的組件,定義組件之間的協作規(guī)約,實現一個系統(tǒng)的框架,并描述用C+平臺實現框架的過程。最后,用一個實例驗證了框架的可行性和有效性。關鍵詞:企業(yè)級應用,軟件復用,框架ABSTRACTSoftwarereuseoffersasolutiontoeli
4、minaterepeatedworkandimproveefficiencyandqualityinthesoftwaredevelopment.Intherecenttenyears,object-orientedtechnologyhasappearedandbecomeamainstreamtechnology,therebyprovidingfundamentaltechnologysupportforsoftwarereuse.Softwarereuseregainsmoreattentioninsoftwareengineeringresearchandisconsideredap
5、racticalandfeasibleapproachtosolvingthesoftwarecrisis.Itcanimprovesoftwareproductivityandquality.Frameworktechnologyadvancestheresearchofsoftwarereuse.ThedevelopmentofEnterpriseApplicationneedthesoftwarereuse,anditgivesanewbackgroundtosoftwarereuse.Frameworkisageneraldesignofsomeapplications,itcompr
6、isesvariableandconstantparts.Wecangetaspecificapplicationbyspecifyingthevariableparts.ThepopularframeworkisEJB,butitistransaction-orientedandheavyweight.Sothisdissertationputforwardalightweightframeworkwhichisdomain-oriented.BasedonEnterpriseApplicationandsoftwarereuse,thisdissertationpresentaframew
7、orkofenterpriseapplication,andexpounditstheory,design,algorithmsandimplementation.Thisdissertationincludesseveralaspectsasfollows:Firstly,depicttheproblemexistinginthesoftwaredevelopmentanddemonstratethenecessityofusingframeworktechnology.Then,discusstheobject-orientedframeworkanddesignpatternindeta
8、il.Next,implementaframeworkofapplicationbyabstractingkeycomponentsofEnterpriseApplicationanddefiningagreementamongcomponentsanddepictthedetailoftheframeworkimplementationusingC+.Finally,weuseanexampletoprovevalidityoftheframework.KeyWords:EnterpriseApplication,softwarereuse,frameworktechnology目錄TOC
9、o 1-5 h z摘要3目錄5第一章緒論71.1研究背景71.2國內外的現狀和發(fā)展趨勢71.3論文內容及結構10第二章框架122.1框架的定義122.2框架的特征122.3框架的分類132.4與其它面向對象技術的比較142.5框架的開發(fā)方法172.6基于框架的開發(fā)(使用框架)192.7框架文檔202.8本章小結20第三章設計模式223.1設計模式的概念223.2設計模式的分類233.3設計模式對框架影響的總結253.4本章小結26第四章企業(yè)級應用框架274.1框架的層次結構274.2框架組成與設計304.3框架關鍵技術324.4本章小結35第五章框架的應用365.1數據庫及其數據表的建立365
10、.2工程的建立375.3實現具體的數據庫服務層385.4實現業(yè)務對象415.5實現數據管理對象455.6實現界面邏輯495.7應用效果525.8本章小結55第六章結束語565.1全文總結565.2展望56參考文獻57第一章緒論1.1研究背景隨著計算機技術的發(fā)展和信息時代的到來,電子商務,電子政務得到了蓬勃的發(fā)展,在企業(yè)級應用需求不斷增長的今天,對企業(yè)級應用的研究也越來越深入。作為企業(yè)級應用本身也經歷著一種漸進式的改變,如今的企業(yè)級軟件面臨著一些明顯的挑戰(zhàn)。其中包括可伸縮性、安全和處理不同廠商技術的需要。另一個重要的問題就是,隨著全球信息化的發(fā)展,對企業(yè)級應用開發(fā)的要求與日俱增。這樣眾多的企業(yè)級
11、應用開發(fā)使開發(fā)人員不堪重負。那么一個很現實的問題擺在我們面前:眾多的企業(yè)級應用中是否有相同的部分可以重用?該如何實現軟件的重用?其實,軟件重用一直存在著軟件開發(fā)的過程中。通過對軟件復用技術的研究和探討,我們發(fā)現以復用為目的開發(fā)的軟件,不但實現了代碼的復用,而且實現了設計,分析,以至于測試的復用。復用的概念己經得到了廣泛的擴展。軟件復用是縮短企業(yè)級應用開發(fā)周期,降低開發(fā)成本,保證開發(fā)成功的最有效的方法。而且軟件復用思想早已在企業(yè)級應用的開發(fā)平臺中得到了運用1。然而,對小規(guī)模復用的長期研究與實踐表明,小規(guī)模的代碼復用如類、數據結構等的復用,并沒有給軟件工業(yè)帶來人們所期望的軟件生產率的大幅度提高、軟
12、件產品質量穩(wěn)定可靠的前景。對于代碼復用,程序語言并不能很好地支持復雜軟件特性的描述。隨著軟件系統(tǒng)規(guī)模和復雜度的日益升級,人們逐漸意識到,系統(tǒng)總體結構的設計和規(guī)范說明比算法和數據結構重要得多,并認為軟件體系結構復用即框架的研究會成為提高軟件復用度的最有希望的途徑2。1.2國內外的現狀和發(fā)展趨勢1.2.1軟件復用的趨勢復用概念的第一次引用是在1968年NATO軟件工程會議上,Mellroy的論文“大量生成的軟件構件”中。在此之前,子程序的概念也體現了復用的思想。但其目的是為了節(jié)省當時昂貴的機器內存資源,并不是為了節(jié)省開發(fā)軟件所需的人力資源。然而子程序的概念可以用于節(jié)省人力資源的目的,從而出現了通用
13、子程序庫,供程序員在編程時使用。例如,數學程序庫就是非常成功的子程序復用的例子。在其后的發(fā)展過程中,有許多復用技術的研究成果和成功的復用實踐活動3。但是,復用技術在整體上對軟件產業(yè)的影響卻并不盡人意。這是由于技術方面和非技術方面的種種因素造成的,其中技術上的不成熟是一個主要原因。近十幾年來,面向對象技術出現并逐步成為主流技術4,為軟件復用提供了基本的技術支持56。軟件復用研究重新成為熱點,被視為解決軟件危機,提高軟件生產效率和質量的現實可行的途徑。在具體的軟件開發(fā)中,存在不同層次的復用,它們分別是:代碼級的復用組件級的復用框架的復用其中,框架的復用是軟件復用的發(fā)展趨勢7。從現在企業(yè)級應用的實際
14、開發(fā)情況來看,在當今面向對象的軟件開發(fā)中獲得最大限度的復用技術就是框架復用8。一個大的應用系統(tǒng)往往可以由多層互相協作的框架組成9。使用框架,可以獲得代碼重用、設計重用、分析重用10??蚣苣軌蛑赜么a??梢哉f,框架是實現了一個特定領域的具有相同需求的部分功能,開發(fā)具體應用系統(tǒng)的人員只需要在其上完成應用系統(tǒng)特有的需求功能即可。因此,框架的大部分代碼被重用??蚣苣軌蛑赜迷O計。它提供可重用的抽象算法及高層設計,并能夠將大系統(tǒng)分解成更小的組件,而且能夠描述組件間的內部接口11。這些標準接口使在已有的組件基礎上通過組裝建立各種各樣的應用系統(tǒng)成為可能。只要符合接口定義,新的組件就能插入到框架中,組件設計者就
15、能重用框架的設計??蚣苣軌蛑赜梅治觥K械娜藛T若按照框架的思想來分析事務,那么就能將應用系統(tǒng)劃分為同樣的組件,采用相似的解決辦法,從而使采用同一框架的分析人員之間能夠進行溝通。采用框架技術進行軟件開發(fā)的主要特點包括:軟件開發(fā)人員主要專注于對應用系統(tǒng)核心業(yè)務的了解,可以不必了解系統(tǒng)許多的底層實現細節(jié),使需求分析更加充分。領域內的軟件結構一致性好。建立更加開放的系統(tǒng)。重用代碼大大增加,軟件生產的效率和質量也得到了提高??蚣苁窃O計開發(fā)人員經驗的總結,可以讓那些經驗豐富的人員去設計框架和領域組件,而不必限于低級的重復性編程??梢圆捎每焖僭图夹g,從而加快開發(fā)。有利于在一個項目內多人協同工作,利用框架,
16、不同的小組可以專注于白己的任務。大粒度的重用使得平均開發(fā)費用降低。開發(fā)周期縮短,開發(fā)難度減小,系統(tǒng)的維護費用降低,系統(tǒng)的適應性、靈活性增強。軟件復用和企業(yè)級應用企業(yè)級應用一般指企業(yè)級軟件,有以下幾個特點:含一系列訪問數據庫的小程序,且這些小程序相對比較獨立。包含許多企業(yè)經營和業(yè)務的各種數據的數據庫。處理各種業(yè)務的程序可以互操作,能夠有機地集成在一起。在當今的企業(yè)級應用中,軟件復用技術被廣泛的應用。使用軟件復用技術,可以使企業(yè)級應用的開發(fā)獲得以下好處:加快企業(yè)軟件發(fā)展速度當今企業(yè)級應用的需求在頻繁的變化,甚至在一個項目的進行過程中,企業(yè)的需求都可能發(fā)生變化。那么如何才能適應這樣的變化呢?答案是使
17、用軟件復用技術。軟件復用能夠提高軟件生產率,縮短軟件開發(fā)周期。軟件復用能夠支持快速原型設計,利用可復用框架可以快速有效的構造出應用程序的原型,以獲得用戶對系統(tǒng)功能的反饋。提供企業(yè)級應用的穩(wěn)定性企業(yè)級應用的一個特點就是對高穩(wěn)定性的要求,大多數企業(yè)的應用必須提供24X7小時的服務。用可復用的構件構造系統(tǒng)時,除了能加快軟件的開發(fā)速度外,同時還為企業(yè)級應用的穩(wěn)定性做出了保障。因為可復用構件經過了高度的優(yōu)化,并且在實踐中經過了考驗。由于使用經過考驗的構件,減少了可能的錯誤。提供企業(yè)級應用的伸縮性對于企業(yè)級應用來說,可伸縮性是一個很重要的指標??缮炜s性是指一個應用系統(tǒng)的體系結構能夠在何種程度上滿足用戶發(fā)展
18、需求的特性。滿足這種不斷變化的需求的辦法就是使用框架技術。在企業(yè)級應用的開發(fā)中,只要開發(fā)出可復用的框架,當有新的需求到來時,我們可以利用已有的框架,就可以開發(fā)出新的應用??蚣艿默F狀盡管企業(yè)級應用設計到非常多的層面,本文將集中研究核心的層次,即業(yè)務模型框架的實現,現今典型的業(yè)務模型框架是基于J2EE平臺的EJB組件12,EJB是面向以事務為中心的企業(yè)軟件,其核心是事務13,不是領域模型,也就是說,在尋求一個純粹領域模型的框架來支持應用的時候,EJB組件是不適合的,如果勉強使用,也就引起對EJB的種種誤解,典型的如下:EJB技術的一項最根本的技術缺陷來自于對象序列化技術,對象序列化技術是EJB跨平
19、臺通訊的基礎,所有的EJB之間通訊都依賴了對象序列化技術的應用。從設計架構上看,這是個簡單清晰的設計,通過對象的序列化實現了對象在多個進程之間的復制傳遞。但非常遺憾的是,設計者對于Java平臺對于對象序列化的實現的考慮卻做的很草率,對象序列化的性能很差14。另一項EJB技術更為嚴重的缺陷來自于RMI(遠程方法調用),EJB更限定必須遵守COBRA規(guī)范的RMI-IIOP技術,實際上我質疑所有采用分布式對象調用的技術,包括COBRA、COM+、RMI等,這種技術的根本原理上都是一樣的,通過本地的一個遠程對象代理,通過網絡上的多次通訊實現對遠程對象的方法調用,這種設計架構的初衷是隱藏對象的具體位置,
20、可以讓對象使用者不用關心對象的實際位置,但是這種方法的實現性能極差,像COBRA這種系統(tǒng)的設計者當初就沒有把性能問題作為一個重要問題去考慮,但正是性能問題,導致隱藏對象位置這個目的實際上也并沒有達到,因為通過通訊訪問遠程對象的性能太差,因此使用者處于系統(tǒng)性能的考慮不得不考慮遠程對象和本地對象的區(qū)別。更可悲的是,EJB的上層設計上也沒有能夠把遠程對象和本地對象的差別消除,用EJB設計人員自己的說法,遠程對象調用和本地對象調用在語義上就無法統(tǒng)一起來。既然上層就必須區(qū)分遠程對象和本地對象,那底層技術上就完全沒有必要采用這種性能很差的設計了。從COBRA開始,這種分布式對象訪問的技術就是不成熟的,EJ
21、B墨守了分布式對象技術的陳規(guī),導致自己背上了沉重的包袱,使用者必須很小心地使用EJB技術,稍有不慎就會導致系統(tǒng)性能大幅度下降。與前面提到的兩個根本缺陷相比,EJB技術的其他方面的問題就顯得微不足道了,比如EJB本身定義的復雜性,實體Bean的性能問題等等,相信這些問題一定可以解決,或者很容易被新的設計替換掉,比如復雜性問題可以通過工具解決,實體Bean可以用輕量級的對象持久層代替等等。實際情況是,所有這些問題都是開發(fā)人員試圖使用EJB并沒有提供的領域模型,輕量級的業(yè)務模型只能由開發(fā)人員自己定制新的框架來完成15。缺失了輕量級的領域模型框架,EJB3標準似乎在這個方向上竭盡全力,但直到現在,市場
22、上仍未發(fā)現成熟的產品。論文內容及結構本論文以軟件復用思想為指導,來探討企業(yè)級應用中通用框架的實現,并用C+構建了一個可復用框架(framework框架),這個框架為開發(fā)企業(yè)級應用的編程人員提供了一個方便靈活,可擴展的平臺。本論文主要研究了以下內容:分析了軟件復用的發(fā)展趨勢以及軟件復用在企業(yè)級應用的狀況,提出構建企業(yè)級應用框架的必要性?;谲浖陀玫乃枷?,為企業(yè)應用系統(tǒng)設計一個通用的框架,從對企業(yè)應用的分析中抽象出對象及其關系的概念,并根據功能的不同進行邏輯分層。給出了本文框架的所有類及其接口,實現了框架模型。在框架模型的基礎上,研究了設計模式以及其它面向對象技術在框架的設計和實現中的運用。結合
23、實際的應用系統(tǒng),應用框架模型進行開發(fā),通過簡潔的實現代碼說明了此框架的可行性及高效性。第二章介紹了框架的概念,特征,開發(fā)方法,和其它復用技術的比較,框架文檔。第三章介紹了設計模式以及其對框架開發(fā)的影響。第四章是企業(yè)應用系統(tǒng)的框架設計和實現問題。第五章以此框架實現CRM系統(tǒng)中的一個模塊,驗證了此框架的可用性。第六章總結本文的研究內容,指出了進一步的研究方向。第二章框架2.1框架的定義最早的框架概念起源于Smalltalk環(huán)境,Smalltalk-80的用戶接口框架,就是ModelView-Controller(MVC),可能是最早被廣泛使用的框架。當Apple公司開發(fā)了支持基于Macintosh
24、的應用的用戶接口框架后,以及Interviews和ET+的用戶接口框架也被開發(fā)和使用后,框架逐漸被人們認識和重視??蚣芤脖粦玫狡渌I域如操作系統(tǒng)等。Taligent公司成立(1992年)后,致力于開發(fā)一個基于框架的完全面向對象的操作系統(tǒng),它發(fā)布了很多用于加快應用開發(fā)的工具,包含了一百多個面向對象的框架??蚣芤搽S之得到了更多設計人員的關注、用框架開發(fā)模式,使軟件開發(fā)更象一個工業(yè)的生產過程。JohnsonandFoote,DesigningReusableClasses中的定義:Aframeworkisasetofclassesthatembodiesanabstractdesignforsol
25、utionstoafamilyofrelatedproblems.這是披引用得最多的關于框架的定義。經過精心設計的框架,可以方便快速的擴展功能,提取通用功能,而且改善性能,提高軟件的穩(wěn)定性,使維護更容易和方便??蚣懿粌H僅是一些類和程序的集合,它來自于對象之問內在的聯系。是這些對象的內在天然聯系,才使得框架發(fā)揮作用,使開發(fā)者只用擴展框架行為就可以用來適應商業(yè)需求16。2.2框架的特征模塊化框架通過封裝多變的實現細節(jié)于固定的接口之后,提高了軟件的模塊性??蚣芡ㄟ^將把由設計和實現的變化所帶來的影響進行局部化來改善應用程序的質量。這有助于理解和維護現有的軟件??蓮陀眯钥蚣芴峁┑墓潭ń涌诒欢x成類屬組件
26、,并可被用來創(chuàng)造新的應用程序。這樣就提高了可復用性??蚣艿目蓮陀眯岳昧擞薪涷灥拈_發(fā)者在該特定領域中的專業(yè)知識和開發(fā)努力,避免了后繼開發(fā)人員針對該領域中的同一問題和需求做重復的勞動??蚣芙M件的復用能大幅度的提高后繼開發(fā)人員的產量,同時還能改善軟件的質量、性能和可靠性。擴展性框架通過提供顯式的鉤子方法(HookMethods),允許應用程序來擴展其固定的接口,這樣就提高了框架的擴展性。鉤子方法系統(tǒng)的為框架的固定的接口和由于不同的需求而產生的應用程序行為之問進行解耦??蚣艿倪@種擴展性對于保證及時地定制新的應用程序服務和特征是十分必要的。反向控制框架是一種運行時體系結構,這種結構被稱為“反向控制”。
27、它使得標準的應用程序過程能被可由框架派發(fā)機制激活的事件處理對象一步步地定制。當事件發(fā)生時,框架的派發(fā)器被事件處理對象的鉤子方法調用,對事件作出反應,執(zhí)行該事件的特定的代碼過程。反向控制允許框架(而不是應用程序)決定何種方法被激活來相應外部事件。白盒框架和黑盒框架白盒框架在很大程度上依靠面向對象語言特征如繼承和動態(tài)綁定來獲得可擴展性。在這種框架中,已有的功能被服用和擴展,通過;(D從框架基類繼承得到新的子類;(2)重載預定義的鉤子方法。白盒框架需要應用程序開發(fā)人員對框架的內部結構非常的熟悉。黑盒框架通過為組件定義接口,使其能通過對象組合技術嵌入到框架中來獲得擴展性。在這種框架中,已有的功能被復用
28、和擴展,通過:(1)一致的接口規(guī)范來定義組件;(2)使用設計模式將組件集成到框架中去。與白盒框架不同,黑盒框架使用組合和代理而不是繼承,所以黑盒框架比白黑框架更容易使用和擴展。但是,黑盒框架開發(fā)起來更加困難,需要框架的開發(fā)者定義良好的接口和鉤子方法。2.3框架的分類可以按不同的方法對框架進行分類,最重要的方法有:框架所描述的問題領域和框架的使用方式。根據框架描述的問題領域,我們可以將框架大致分為三種類型:應用程序框架應用程序框架旨在提供一個全范圍的、功能性的創(chuàng)建一個應用所需的基礎設施。這個功能集通常涉及很多方面,例如用戶界面GUI、文檔、數據庫等。一個最典型的應用程序框架的例子就是C+類庫MF
29、C,MFC被用來構建MSWindows上的應用程序。支持框架支持框架通常定位于非常專業(yè)的計算機相關的領域,例如存儲管理或者文件系統(tǒng)。對于這類領域的支持有利于簡化程序的開發(fā)。典型的支持框架被用在應用系統(tǒng)和應用程序框架之間的連接17。領域框架領域框架捕獲了特定問題領域的專業(yè)知識和經驗:如制造控制框架和多媒體框架就是領域框架的例子。領域框架是目前框架技術運用的熱點。同一領域中的系統(tǒng)的需求和功能必然具有顯著的共性,其實現也常常具有共性。領域模型描述了需求方面的共性。對于己生產了許多系統(tǒng)或更新較為頻繁的領域,建立基于共同功能的軟件框架將由于促進軟件復用而得到顯著的回報18。如果說領域模型描述了一系列問題
30、,領域軟件框架則描述了一系列解決方案、將領域分析的產品轉化并映射到一個實現的構架。領域框架并不是單個系統(tǒng)的表示,而是能夠適應領域中多個系統(tǒng)的需求的一個高層次的設計。他包含組件以及組件互連的規(guī)則。當開發(fā)本領域的一個新系統(tǒng)時,滿足當前系統(tǒng)需求特點的系統(tǒng)結構,可以使用這些構件按照規(guī)則構成。一些領域分析方法包括了生成通用軟件框架的步驟,如ODM的說明模型和FODA的特征模型,這對開發(fā)一個通用體系結構通常有指導作用。根據使用框架的方式,可以將框架分為兩類:體系結構驅動框架。這種方法主要依賴于繼承機制:框架使用者通過繼承框架中的類和重載類中的操作來生成應用程序。這種方法的主要缺點是框架使用者不得不自己去實
31、現該框架中的種種行為,這就意味著要編寫大量的代碼。數據驅動框架。要使得框架去適應應用程序的特定需求,這在很大程度上依賴于對象組合。這種框架描述了對象是如何被組合的,但是它的功能在很大程度上取決于框架使用者傳遞到框架中的對象。所以,數據驅動框架易于使用但是功能上有所限制。為了處理使用體系結構驅動和數據驅動所帶來的問題,一個較好的模式是框架以體系結構驅動為基礎,又包含數據驅動層,從而使得該框架既有良好的擴展性,又便于使用。2.4與其它面向對象技術的比較在基于框架的軟件開發(fā)中,有一些其它的面向對象復用技術與框架密切相關,它們是類庫、組件和設計模式27。2.4.1框架與類庫類庫是一組相關的、可復用的類
32、的集合,這些類提供了通用的功能。類庫的典型例子如C+的I/O流庫和標準模板庫(STL)。類庫強調的是代碼復用,它們是面向對象環(huán)境下的“子程序庫”。在基于框架的開發(fā)過程中,類庫扮演著重要的角色。框架通常將類庫集成到其內部來簡化開發(fā)工作,并通過類庫來完成一些基本的任務如字符串處理、文件管理等。所有的框架都是類庫,但并不是所有的類庫都是框架。框架通過下列方式來擴展類庫的功能:框架是包含特定領域對象體系結構和功能的“半成品”。框架中的組件在一起合作,為一類相關的應用程序提供了一個標準的體系結構骨架,通過從框架組件繼承和組合可以得到完整的應用程序。與之相比,類庫不是針對特定領域,并只提供較小范圍內的復用
33、。與框架的運行時的“反向控制”相比,類庫則是被動的。當使用類庫時,需要寫應用程序的主體并調用想要復用的代碼。當使用框架時,應該復用應用程序的主體,寫主體調用的代碼。如圖2-1所示。圖2-1框架的反向控制基于框架的應用開發(fā)方法與通常的基于類庫的開發(fā)方法主要區(qū)別在于兩點一點是在運行時刻由框架決定和控制應用的行為,而基于類庫的應用不是。第二框架影響應用系統(tǒng)的整個結構,而類庫對應用系統(tǒng)的影響比較小。2.4.2框架與組件組件是自包含的抽象數據類型(ADT),并能夠被組裝在一起形成完整的程序。組件典型的例子如Microsoft公司的ActiveX和Borland公司的VCL。組件通過黑盒技術,被設計成為定
34、義了一個相互協調的操作的集合,該操作集可以通過在語法上一致的接口來訪問20。組件和框架是不同的,但是相互協作的技術。首先,框架為組件提供了一個可以復用的環(huán)境。每一個組件在開發(fā)時都假定了它的存在環(huán)境,如果組件假定的環(huán)境不同,則它們就不可能在一起很好的工作;而框架則為組件提供了一個標準的環(huán)境來處理錯誤、交換數據、激活彼此間的互操作。通常所謂的“組件系統(tǒng)”如OLE、OpenDoc和Beans,實際上是框架21,它們解決了在構造復雜文檔和其它組合對象時所帶來的標準問題。框架與組件在一起協同工作的另一種方式就是框架使得開發(fā)新的組件變得更容易。實際上,不管組件庫被設計得如何的優(yōu)秀,應用程序的功能看起來還是
35、無法完全滿足,從而必須開發(fā)新的組件,框架則提供了設計新組件的規(guī)范和實現它們的模板22。與框架相比,組件是松耦合的,并支持二進制級別的復用。在基于框架的開發(fā)過程中,組件可以被黑盒框架用作為可嵌入的策略模式。通常,框架被用來簡化體系結構和中間件的開發(fā),而組件被用來簡化最終用戶程序的開發(fā)23。2.4.3框架與設計模式設計模式代表了在軟件開發(fā)過程中特定場景下解決重復發(fā)生的問題的方案。每一個設計模式都集中于一個特定的面向對象設計問題或設計要點,描述了什么時候使用它,以及使用的效果和如何取舍。一個使用設計模式的框架比不用設計模式的框架更可能獲得高層次的設計復用和代碼復用。它們最主要的不同在于如下三個方面:
36、(1)設計模式比框架更抽象框架能夠用代碼表示,而設計模式只有其實例才能表示為代碼??蚣艿耐υ谟谒鼈兡軌蛴贸绦蛟O計語言編寫,不僅可以被學習,還能被直接執(zhí)行和復用。從這個意義來說,框架是個物理實體,而設計模式是個邏輯實體,框架可以看成是一個或多個設計模式解決方案的物理實現,而模式則指導如何來實現這些方案。(2)設計模式是比框架更小的體系結構元素框架可以含有若干個設計模式,反之不行??蚣鼙仍O計模式更加特例化框架總是針對一個特定的應用領域,而設計模式可以被用于任何應用。在實際的開發(fā)過程中,以上所討論的復用技術經常是聯系在一起來完成應用程序的開發(fā)工作的。如圖2-2所示。圖2-2基于框架的應用程序分解2
37、.5框架的開發(fā)方法1.基于應用開發(fā)經驗的框架開發(fā)流程(見圖2-3)圖2-3基于應用開發(fā)經驗的框架開發(fā)流程圖2.基于領域分析的框架開發(fā)流程(見圖2-4)圖2-4基于領域分析的框架開發(fā)流程圖3.使用設計模式的框架開發(fā)流程24(見圖2-5)4.通常使用的框架開發(fā)方法25(見圖2-6)問題領域分析。通過一個以上的領域內應用開發(fā),提出關鍵的抽象層利用關鍵抽象開發(fā)第一版的框架?;谶@個框架,開發(fā)一個或若干個應用,測試這個框架是否可重用。集中開發(fā)過程中產生的問題,開發(fā)下一個版本的框架。重復3-4,一個成熟的框架發(fā)布。愎用幵搜御試世卑用經牡沁襯維護架圖2-6通常使用的框架開發(fā)方法圖2.6基于框架的開發(fā)(使用框
38、架)從開發(fā)過程看,基于框架的軟件開發(fā)方法是采用自頂向下設計,自底向上構成的方法。設計時根據需求分析的結果,按照由粗到細,先總體后細節(jié),先上層后下層的原則,確定所需要的組件。然后自底向上利用己準備好的組件,根據相應的原則組裝組件,配合其他的模塊,組成相應的應用系統(tǒng)26。傳統(tǒng)的開發(fā)模式是分析設計開發(fā)應用,而基于框架的應用開發(fā)是領域分析一框架設計一開發(fā)應用(1,2.n)。通常的軟件開發(fā)方法有以下幾個步驟:領域分析需求分析系統(tǒng)分析結構設計詳細設計實現7.測試8.維護基于框架的開發(fā)包含上述通常的步驟,但是還必須包括1)為系統(tǒng)應用定義概念層的框架。分析系統(tǒng)的功能,進行系統(tǒng)的功能分解,明確各功能的聯系。2)
39、選擇一個合適的面向對象框架。一般選擇了一個框架后該系統(tǒng)應用的結構也就基本固定了。3)把系統(tǒng)應用的概念層框架影射到所選擇的面向對象的框架(子系統(tǒng)影射到子框架)。4)指定和修改框架的子框架之間的關系。一個框架可能包含若干個子框架,一個框架也可能被設計為可添加子框架的,如設備驅動程序框架和數據庫存取框架。5)結構化子框架的不同組件。這包括決定子框架的哪些部分應該是固定了,哪些還沒有。如果是固定了,那已經實現的缺省行為動作將被使用。如果沒有固定,就是說還要去實現一些抽象類或接口。6)實現軟件系統(tǒng)。2.7框架文檔推廣一個框架關鍵的一點就是這個框架有沒有一個好的文檔來描述這個框架是什么,怎么使用??蚣芪臋n
40、至少要適用于三種用戶:決定使用哪一個框架的用戶。框架文檔至少要說清楚這個框架能夠做什么,有什么比較重要的功能。使用框架的用戶??蚣芪臋n要說清楚如何使用這個框架,必須有一個十分清晰的使用文檔。使用框架的高級用戶??蚣芪臋n要說清如何擴展這個框架,即如何往框架中添加新的功能。文檔要能夠使用戶從深層次去理解框架,要從抽象的角度描述框架所使用的一些算法,設計模式等,描述清楚框架為什么要這樣設計。因為框架包含了領域內很多復雜的問題,以及屏蔽了技術上的很多難點與細節(jié),所以必須要有文檔來描述清楚。普通的類庫文檔需要如下信息:結構信息,如類名,類型,初始化參數等描述信息,說明該類的用途使用方法,描述一個類能否以
41、某種特定的方式來實例化等。用到的術語解釋配置信息,描述類與其它哪些類相關,是否適合在某種配置下被實例化。約束條件操作信息,如參數,結果和結果類型等除了上述信息外,框架文檔還必須包括框架目的如何使用框架應用程序示例的目的框架的設計思想2.8本章小結本章介紹了框架的定義,比較了框架相對于其它復用技術的優(yōu)點,講述了框架的各種分類,常用構建框架的方法和使用框架進行系統(tǒng)開發(fā)的流程,以及框架文檔的用途。第三章設計模式面向對象技術的出現和應用大大提高了軟件的重用性和軟件的質量。面向對象的編程也比以往的各種編程模式要簡單和高效,但是面向對象的設計方法要比以往的設計方法要復雜和有技巧得多,一個良好的設計應該既具
42、有對問題的針對性,也充分考慮到對將來問題和需求有足夠的通用性27。在過去的十幾年中,人們在對面向對象技術的研究探索和實際應用中針對某些問題創(chuàng)造了一些良好的解決方案,即所謂的面向對象的設計模式。面向對象技術的目的之一就是提高軟件的重用性,而對設計模式、設計方案的重用則從更深的層次上體現了重用的意義和本質。有關設計模式,目前的主要研究方向有:設計模式與其他面向對象設計方法(如特定領域的框架)的關系,它們各自的優(yōu)劣和適應范圍。設計模式已經被廣泛用于多個領域的軟件構造和設計、開發(fā)處理和組織中,當代許多先進的軟件中已大量采用了軟件設計模式的概念28。3.1設計模式的概念人們對設計模式有很多定義,其中被引
43、用的最多是ChristopherAlexander的設計模式的定義:每一個設計模式是一個三方的規(guī)則,它表達了一個上下文環(huán)境(Context),個問題和一個解決方案。設計模式一般有如下幾個基本要素:模式名稱,問題,解決方案,效果29。模式名稱(patternname):一個助記名,它用一兩個詞來描述模式的問題、解決方案和效果。模式名稱的產生使我們可以在更高層次上進行設計并交流我們的設計思想,因此尋找好的模式名稱是一個很重要也是很困難的工作。問題(problem):告訴我們什么時候要使用設計模式,解釋問題及其背景。它可能描述了特定的設計問題,如怎樣用對象表示算法,也可能描述了導致不靈活設計的類或對
44、象結構。有時候,問題部分會包括使用模式必須滿足的一系列先決條件。解決方案(solution):描述了設計的組成部分,它們之間的相互關系以及各自的職責和協作方式。因為模式就像一個模板,可應用于多種不同的場合,所以解決方案并不描述一個特定而具體的設計或實現,而是提供設計問題的抽象描述和怎樣用一個具有一般意義的元素組合(類或對象組合)來解決這個問題。效果(consequences):描述了模式應用的效果及使用模式應權衡的問題。比較與其他設計方法的異同,得到應用設計模式的代價和優(yōu)點。對于軟件設計來說,通常要考慮的是空間和時間的權衡,也會涉及到語言問題和實現問題。對于一個面向對象的設計而言,可復用性很重
45、要,后果還包括對系統(tǒng)靈活性、可擴充性及可移植性的影響。明確看出這些效果有助于理解和評價設計模式。3.2設計模式的分類根據應用目的,有應用系統(tǒng)、工具包、框架三類軟件。因此,可以將設計模式分為可復用部件的設計模式和可復用框架設計模式。可復用部件的設計模式主要注重單個部件的設計而忽略了整個的框架,相比之下,可復用框架的設計比可復用部件的設計更具有挑戰(zhàn)性,也更加重要。面向對象軟件開發(fā)領域的專家一般都會建議初學者首先學習面向對象的基本概念,然后才研究各種各樣的框架。當然,使用框架時,都是在考慮實現細節(jié)之前先獲得應用。雖然此時設計模式沒有被明確使用,初學者可以從各種框架中抽象出設計模式來,從中學到如何設計
46、類的界面和處理抽象類與實際類的相互關系。這種方法最大的缺點是需要花費大量的精力:一開始必須掌握如何應用一種框架,因此要學習該框架的各種細節(jié),往往還得學習一種新的編程語言。對設計模式的抽取需要能從實現的細節(jié)中看到深層的框架,但在沒有任何提示的情況下,理解特定的設計意圖是不可能的。以框架為中心的設計模式方法的主要目的是在不涉及實現細節(jié)的前提下描述框架及其各個類的實際。這種抽象的設計描述是成熟設計的不可缺少的工具。設計模式有助于針對待定的需求應用某一種框架或結合已有的成熟設計來構造新的框架。設計模式是理解某一框架的具體實現細節(jié)的引路圖,同時,如果軟件工程師掌握了某一個框架的實際思想,那么將能夠應用所
47、獲得的經驗來開發(fā)新的框架30。設計模式的分類有好幾種,可以根據其目的分為創(chuàng)建型(Creational),結構型(Struetural)和行為型(Behavioral)三種。創(chuàng)建型模式主要是用來創(chuàng)建對象,結構型模式主要是處理類或對象的組合,行為型模式則主要用來描述類或對象怎樣交互和怎樣分配職責。也可以根據范圍將設計模式分為類模式和對象模式,類模式處理類和子類之間的關系,這些關系通過繼承建立,在編譯時刻就被確定下來,是屬于靜態(tài)的。對象模式是處理對象間的關系,這些關系在運行時刻變化,更具動態(tài)性。從某種意義上來說,幾乎所有模式都使用繼承機制,所以“類模式”只指那些集中于處理類間關系的模式,而大部分模式
48、都屬于對象模式的范疇。創(chuàng)建型類模式將對象的部分創(chuàng)建工作延遲到子類,而創(chuàng)建型對象模式則將它延遲到另一個對象中。結構型類模式使用繼承機制來組合類,而結構型對象模式則描述了對象的組裝方式。行為型類模式使用繼承描述算法合控制流,而行為型對象模式則描述一組對象怎樣協作完成單個對象無法完成的任務。ErichGamma按照上述的分類方法總結為如圖3-1所示:的緒枸型類Adapter(類Inwrp啊rTtimplaleMethod対最Ab5lrBclFactoryBkkiiriPrProttMypeSiroglftOflAdapted對踽CocnposUeDecpralOTFacadeProxyOminofR
49、espondWlityyATlinUIhlIteratorMcdiajturMenKncoObserverStateStrategyVisitor圖3-1ErichGamma的設計模式分類表設計模式的簡單介紹如下:AbstractFactory:提供一個創(chuàng)建一系列相關或相互依賴對象的接口,而無須指定具體的類。Adapter:將一個類的接口轉換成客戶希望的另外一個接口,使得原來由于接口不兼容而不能一起工作的那些類可以一起工作。Bridge:將抽象部分與它的實現部分分離,使它們都可以獨立地變化。Builder:將一個復雜對象的構建與它的表示分離,使得同樣的構建過程可以創(chuàng)建不同的表示。Chainof
50、Responsibility:為解除請求的發(fā)送者和接收者之間禍合,而使得多個對象都有機會處理這個請求,將這些對象連成一個鏈,并沿著這條鏈遞送請求,直到有一個對象處理它。Command:將一個請求圭寸裝為一個對象,從而可用不同的請求對客戶進行參數化;對請求排隊或記錄請求日志,以及支持可取消的操作。Composite:將對象組合成數形結構以表示部分整體的層次結構。使得客戶對單個對象和復合對象的使用具有一致性。Decorator二動態(tài)地給一個對象添加一些額外的職責。就擴展功能而言,它比生成子類的方式更為靈活。Facade:為子系統(tǒng)中的一組接口提供一個一致的界面,定義了一個高層接口,這個接口使得這一子
51、系統(tǒng)更加容易使用。FactoryMethod:定義一個用于創(chuàng)建對象的接口,讓子類決定將哪一個類實例化,它使得一個類的實例化延遲到其子類。Flyweight:運用共享技術有效地支持大量細粒度的對象。Interpreter:給定一個語言,定義它文法的表示,并定義一個解釋器,該解釋器使用該表示來解釋語言中的句子。Iterator:提供一種方法順序訪問一個聚合對象中各個元素,而不需暴露該對象的內部表示。Mediator:用一個中介對象來封裝一系列的對象交互。中介者使各個對象不需要顯示地相互引用,從而使其耦合松散,而且可以獨立地改變它們之間的交互。Memento:在不破壞圭寸裝性的前提下,捕獲一個對象的
52、內部狀態(tài),并在該對象之外保存這個狀態(tài)。這樣以后就可以將該對象恢復到保存的狀態(tài)。Observer:定義對象間的一種一對多的依賴關系,以便當一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并自動刷新。Prototype:用原型實例指定創(chuàng)建對象的種類,并且通過拷貝這個原型來創(chuàng)建新的對象。Proxy:為其他對象提供一個代理以控制對這個對象的訪問。Singleton:保證一個類只有一個實例,并提供一個訪問它的全局訪問點。State:允許一個對象在其內部狀態(tài)改變時改變它的行為。對象看起來似乎修改了它所屬的類。Strategy:定義一系列的算法,把它們一個個圭寸裝起來,并且使它們可相互替換。使得算法的
53、變化獨立于使用它的客戶。TemplateMethod:定義一個操作中算法的骨架,而將一些步驟延遲到子類中,使得子類可以不改變一個算法的結構即可重定義該算法的某些特定步驟。Visitor:表示一個作用于某對象結構中的各元素的操作。它使你可以在不改變各元素的類的前提下定義作用于這些元素的新操作。3.3設計模式對框架影響的總結在沒有使用設計模式時,框架也可以使用,但是有了設計模式可以使框架得到更好的理解。設計模式和框架是兩種不同的思路:設計模式比框架更抽象,它的結構元素的粒度比框架的要小,比框架更一般化。把兩者結合起來應用可以取得很好的效果:一個使用設計模式的框架比不用設計模式的框架更可能獲得高層次
54、的設計復用和代碼復用。成熟的框架通常使用了多種設計模式。設計模式有助于得到適用于多種應用的框架體系結構31。當框架和它使用的設計模式一起寫入文檔時,了解設計模式的人能較快地洞悉框架,不了解設計模式的人也可以從產生框架文檔的結構中受益。加強文檔工作對于所有軟件而言都是重要的,但對于框架其重要性顯得尤為突出。學會使用框架常常是一個必須克服很多困難的過程。設計模式雖然無法徹底克服這些困難,但它通過對框架設計主要元素做更顯式的說明可以降低框架學習的難度。本章小結本章介紹了設計模式的概念,簡要比較了設計模式的分類,說明了模式的用途,總結了在框架設計中使用設計模式技術的優(yōu)點,并為本文框架使用的模式提供了技
55、術背景。第四章企業(yè)級應用框架4.1框架的層次結構設計框架首先要考慮的是框架如何分層、各層包含何種組件或對象、不同層次之間以及同層對象如何通信?傳統(tǒng)的開發(fā)方法分層如下:(1)三層模型:三層模型是一種“界面業(yè)務邏輯數據庫”的邏輯分層模型,典型用于C/S物理模型的應用系統(tǒng)中,一部分業(yè)務量較少的B/S物理模型也采用這種程序架構。典型的三層C/S結構將處理負載分為成三部分,分別對應于邏輯層次,其中表示層運行用戶的界面,應用邏輯層運行業(yè)務邏輯,數據層存放應用程序所需的數據。這種體系結構如圖4-1所示。J*錄服爪點卅層應用邂輯怎廠劇h如出用曰界面業(yè)命邏覲圖4-1三層體系結構圖表示層通過調用應用邏輯層代碼來獲
56、取所需要的數據,并按照適當的格式顯示出來。由于業(yè)務邏輯從界面層分離出來,極大地增強了應用程序設計的靈活性。當應用程序被修改時,只要對表示層提供的接口不變,就不需要更新每個客戶端的用戶界面程序,在運行效率和可維護性上遠遠高于二層C/S結構。數據層包含了應用程序所需要的數據。這些數據可以由不同的信息源組成,如:oracle,Informix,Sybase數據庫,也可以是XML文檔集,還可以是目錄服務。除了傳統(tǒng)的關系數據庫存儲機制外,還有許多種應用程序可以訪問的不同的企業(yè)數據源。另外,多種Client端能夠和一個Server端進行通訊,而不僅僅是一個特定的服務器,Server端對執(zhí)行細節(jié)進行封裝,提
57、供給客戶端的是標準的服務接口,客戶端無須了解服務端的具體位置以及具體的執(zhí)行細節(jié),體現了良好的封裝性32。(2)N層模型:實際上就是指三層C/S模型中應用邏輯層不單純是一個程序,而是根據功能對應用邏輯層進行劃分。N層C/S結構具有以下五個層次:用戶界面層:負責處理用戶與應用程序之間的交互過程:它可以是一個通過防火墻運行的Web瀏覽器,也可以是一般的終端設備、桌面應用程序,甚至還可以是無線設備。表示邏輯層:定義了用戶界面要顯示的內容,并根據所支持的是什么樣的接口確定如何處理用戶的請求。對于相應的客戶,表示邏輯層版本會有相應的不同。業(yè)務邏輯層:通過與應用數據打交道,對應用的業(yè)務規(guī)則實施建模?;A框架
58、服務層:提供應用系統(tǒng)需要的其它功能,如:消息傳送、事務支持數據層:存放企業(yè)級的應用數據。在實際應用中,也可以將業(yè)務邏輯層再分為若干組件集,每一個組件集完成一個相當小的業(yè)務功能,用戶界面層通常需要連接若干個組件集來完成一個單獨的業(yè)務邏輯,組件集之間也可以相互調用。因此,通常我們所說的三層C/S模型就是指N層模型。本論文的框架圖如圖4-2所示,分為表示層、業(yè)務領域層、數據管理層和數據庫四層。框架的這種分層模型避開了簡單的三層模型中巨型業(yè)務對象的問題,而不更細致地分為五層,是因為第五層,即映射層(用于映射業(yè)務對象屬性到數據表字段一一對應)雖然可以增加了框架的應用靈活性,但付出了框架設計的難度,而此映
59、射功能完全可以通過框架文檔的協議說明來避免。另外要說明的是,框架的表示層并不只是一個單機應用的界面,完全可以使用J2EE的JSP+SERVERLET機制,實現一個JSP+SERVERLET+框架的互聯網級的應用系統(tǒng),在此情形下,框架的協議分層可以被看作是五層。為了避免混淆,JSP+SERVERLET僅僅被當作表示層,本框架是上圖所示四層模型。此四層模型解釋如下:表示層:顯示數據信息的界面,指應用開發(fā)平臺提供的界面層,在通常的非互聯網平臺如C+BUILDER中,它指代FORM界面,在互聯網平臺中如Websphere中,它指代JSP+SERVERLET。業(yè)務領域層:業(yè)務對象集合,所有表示業(yè)務邏輯的
60、對象都放在這一層。數據管理層:代理業(yè)務對象進行數據處理的對象集合的層次。數據庫層:框架運行于其上的各型數據庫,一般指具有SQL能力的關系型數據庫系統(tǒng),如典型的ORACLE、DB2、SQLSERVER等。其中圖上的箭頭指向意義如下:TFORM指向TPDOBJECT的箭頭表示界面允許使用業(yè)務對象。上圖的表述是一個TFORM指向一個TPDOBJECT,這并不意味著一個界面只能使用一個業(yè)務對象,也不意味著不同的界面必須使用不同的業(yè)務對象。不同層次之間的箭頭僅表示在實際應用中層次之間的調用關系,不代表數量關系。界面之間的箭頭表示不同界面之間可以相互訪問對方,一般的是A界面需要訪問B界面的一些信息元素,或
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年產品營銷協議(2篇)
- 2025年個人果園承包合同(4篇)
- 2025年產品供應與銷售代合同(三篇)
- 2025年買房書面合同協議范文(2篇)
- 2025年個人租房的合同常用版(4篇)
- 2025年產品委托銷售合同經典版(三篇)
- 2025年個人工程合作協議范文(2篇)
- 農業(yè)項目股權投資居間合同
- 旅游巴士燃油供應協議
- 文化用品店裝修合同范本
- 2025年初中語文:春晚觀后感三篇
- Unit 7 第3課時 Section A (Grammar Focus -4c)(導學案)-【上好課】2022-2023學年八年級英語下冊同步備課系列(人教新目標Go For It!)
- 2025年上半年長沙市公安局招考警務輔助人員(500名)易考易錯模擬試題(共500題)試卷后附參考答案
- 《教育強國建設規(guī)劃綱要(2024-2035年)》解讀講座
- 2025河北邯鄲世紀建設投資集團招聘專業(yè)技術人才30人高頻重點提升(共500題)附帶答案詳解
- 慈溪高一期末數學試卷
- 《基于新課程標準的初中數學課堂教學評價研究》
- 預算績效評價管理機構入圍投標文件(技術方案)
- 重大事故隱患判定標準與相關事故案例培訓課件
- 2024年度節(jié)后復工建筑施工安全培訓交底
- 民族主義與民粹主義
評論
0/150
提交評論