亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        工廠(chǎng)設(shè)計(jì)模式在WEB教育資源管理系統(tǒng)中的應(yīng)用

        2010-02-08 13:02:12劉軍華胡志剛
        關(guān)鍵詞:資源方法

        劉軍華,胡志剛

        (中南大學(xué)軟件學(xué)院,湖南長(zhǎng)沙 410083)

        任何一名會(huì)思考的軟件開(kāi)發(fā)人員隨著自身開(kāi)發(fā)經(jīng)驗(yàn)的不斷積累,軟件理論理解的不斷加深,都會(huì)不由自主地想一些方法或者捷徑,來(lái)提高自己的編碼效率,而不是一味的面對(duì)重復(fù)的問(wèn)題做相同的工作,因?yàn)樵O(shè)計(jì)出高質(zhì)量、低耗費(fèi)、易維護(hù)和可復(fù)用的面向?qū)ο蟮某绦蚴敲恳粋€(gè)軟件開(kāi)發(fā)工程師共同的追求。而設(shè)計(jì)模式就是為解決重復(fù)問(wèn)題而提出的一套較好的解決方案。在軟件設(shè)計(jì)和架構(gòu)時(shí),適當(dāng)?shù)厥褂迷O(shè)計(jì)模式可以給系統(tǒng)帶來(lái)更大的可擴(kuò)展性和盡量少的修改量。

        1 設(shè)計(jì)模式簡(jiǎn)介

        設(shè)計(jì)模式起源于建筑,首先由建筑設(shè)計(jì)師亞歷山大提出的,然后推廣到軟件設(shè)計(jì)行業(yè)來(lái)。軟件行業(yè)最早出現(xiàn)的設(shè)計(jì)模式著作是GOF(Gang Of Fours)四人組所著的那本《設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖A(chǔ)》,該書(shū)提出的設(shè)計(jì)模式共有23種,根據(jù)模式完成工作的不同,將設(shè)計(jì)模式劃分為創(chuàng)建型模式、結(jié)構(gòu)型模式和行為型模式三大類(lèi)。創(chuàng)建型模式與對(duì)象的創(chuàng)建有關(guān),結(jié)構(gòu)型模式是處理類(lèi)或?qū)ο蟮慕M合,行為型模式是對(duì)類(lèi)和對(duì)象怎樣交互和怎樣分配職責(zé)進(jìn)行描述。工廠(chǎng)設(shè)計(jì)模式屬于創(chuàng)建型模式,根據(jù)其創(chuàng)建的形式的不同,工廠(chǎng)設(shè)計(jì)模式又有以下三種形態(tài):

        1)簡(jiǎn)單工廠(chǎng)模式 (Simple Factory):是用一個(gè)類(lèi)來(lái)模擬工廠(chǎng),通過(guò)該工廠(chǎng)類(lèi)的靜態(tài)方法返回具體的產(chǎn)品類(lèi),而這些產(chǎn)品又源自一個(gè)抽象的產(chǎn)品。

        2)工廠(chǎng)方法模式 (Factory method):是類(lèi)的創(chuàng)建模式,定義一個(gè)創(chuàng)建工廠(chǎng)接口,將實(shí)際的創(chuàng)建工作推到子類(lèi)工廠(chǎng)中。也就是原本的靜態(tài)類(lèi)變成了一個(gè)抽象類(lèi)或接口,而將制造的任務(wù)交給底下的具體實(shí)現(xiàn)類(lèi)來(lái)完成。

        3)抽象工廠(chǎng)模式(Abstract Factory):提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴(lài)的對(duì)象的接口,而無(wú)須指定具體的類(lèi)。

        本文主要討論工廠(chǎng)設(shè)計(jì)模式中的簡(jiǎn)單工廠(chǎng)模式和工廠(chǎng)方法模式在C#中的應(yīng)用與實(shí)現(xiàn),并通過(guò)Web教育資源管理系統(tǒng)為例體現(xiàn)工廠(chǎng)模式的優(yōu)勢(shì)。

        2 WEB教育資源管理系統(tǒng)介紹

        WEB教育資源管理系統(tǒng)是指利用計(jì)算機(jī)信息技術(shù)手段,面向各類(lèi)高職院校,構(gòu)建一個(gè)基于校園網(wǎng)絡(luò)環(huán)境下,能實(shí)現(xiàn)對(duì)教育資源進(jìn)行整合、歸類(lèi)、查詢(xún)、共享、審核、管理的一個(gè)軟件平臺(tái)。主要功能有:

        1)用戶(hù)空間的申請(qǐng)與生成:本系統(tǒng)旨在讓每一位教師擁有一個(gè)網(wǎng)上辦公室,讓每一位學(xué)生擁有一個(gè)網(wǎng)上學(xué)習(xí)空間。教師的工號(hào)和學(xué)生的學(xué)號(hào)即是空間的賬號(hào),并根據(jù)院校的組織機(jī)構(gòu)自動(dòng)生成相應(yīng)的管理空間。如系部空間、班級(jí)空間等。

        2)整合其它系統(tǒng)的資源:通過(guò)二次開(kāi)發(fā),能整合與共享各高職院校已經(jīng)存在的系統(tǒng)中的信息資源。比如,學(xué)籍管理系統(tǒng)中的學(xué)生檔案信息、教務(wù)管理系統(tǒng)中的教學(xué)安排信息等。

        3)教育資源的開(kāi)發(fā)與上傳:每個(gè)空間的主人都是資源開(kāi)發(fā)的主體,先由各院校自定義好各類(lèi)教育資源的模板,然后開(kāi)發(fā)者再按照規(guī)定的模板自行制作開(kāi)發(fā)。

        4)教育資源的管理與審核:當(dāng)開(kāi)發(fā)者將教育資源上傳到服務(wù)器時(shí),須經(jīng)管理員的審核后才能顯示在系統(tǒng)中,同時(shí),為保護(hù)教育資源的使用權(quán)限,所有未注冊(cè)、未授權(quán)用戶(hù)只能瀏覽,不能復(fù)制和下載;為提高教育資源的質(zhì)量,在系統(tǒng)中設(shè)為推薦、評(píng)價(jià)、瀏覽次數(shù)等機(jī)制,并以此作為對(duì)教師或?qū)W生評(píng)價(jià)的依據(jù)之一。

        另外,根據(jù)系統(tǒng)的設(shè)計(jì)要求,我們將系統(tǒng)中所涉及到的教育資源按以下方式進(jìn)行分類(lèi):

        1)按專(zhuān)業(yè)大類(lèi)劃分:電子信息類(lèi)、公共管理類(lèi)等。

        2) 按媒體格式劃分:文本類(lèi)、圖形(像)類(lèi)、音頻類(lèi)、視頻類(lèi)等。

        3) 按學(xué)科課程劃分:語(yǔ)文、數(shù)學(xué)、商務(wù)英語(yǔ)、計(jì)算機(jī)基礎(chǔ)等。

        4) 按資源種類(lèi)劃分:重要文件、通知公告、規(guī)章制度、工作計(jì)劃、課程標(biāo)準(zhǔn)、實(shí)習(xí)實(shí)訓(xùn)項(xiàng)目、案例庫(kù)、教案、課件、素材、習(xí)題集、試卷庫(kù)、影片等。

        其中,系統(tǒng)在具體設(shè)計(jì)實(shí)現(xiàn)的時(shí)候,主要以教育資源的媒體格式為依據(jù)進(jìn)行程序開(kāi)發(fā)。下面從程序開(kāi)發(fā)的角度闡述設(shè)計(jì)模式使用前后的變化。

        3 未使用設(shè)計(jì)模式的WEB教育資源管理系統(tǒng)

        在C#創(chuàng)建對(duì)象的方式為:類(lèi)名 對(duì)象名=new構(gòu)造函數(shù)名();這是開(kāi)發(fā)人員創(chuàng)建對(duì)象常用的方法格式,使用new創(chuàng)建對(duì)象的缺點(diǎn)是事先必須明確知道要實(shí)例化的類(lèi)是什么,這樣就違背了工程化的設(shè)計(jì)思想。下面用示例說(shuō)明使用new的局限性。

        在WEB教育資源管理系統(tǒng)中,教育資源類(lèi)(Resource)、文本資源類(lèi)(TxtResource)、圖形/像資源類(lèi)(PicResource)、視頻資源類(lèi)(FlvResource)等存在著繼承關(guān)系,如圖1所示。

        圖1 三種教育資源類(lèi)與Resource的繼承關(guān)系圖

        在C#中,一般情況下會(huì)按以下代碼聲明多態(tài)對(duì)象,從而引發(fā)多態(tài):

        按照?qǐng)D1的類(lèi)設(shè)計(jì)思路,假若現(xiàn)在要分別調(diào)用文本資源類(lèi)、圖形/像資源類(lèi)和視頻資源類(lèi)的顯示方法來(lái)顯示相應(yīng)的資源內(nèi)容,在客戶(hù)端通常用以下代碼來(lái)實(shí)現(xiàn):

        這樣雖然能達(dá)到所需的效果,但客戶(hù)端調(diào)用ResDisplay方法時(shí)就必須首先要知道是要顯示哪一種類(lèi)型的資源,即必須事先知道要實(shí)例化哪一個(gè)類(lèi),并且隨著資源種類(lèi)的不斷增多,這種類(lèi)似的代碼還會(huì)重復(fù)更多。也就是說(shuō)上述的代碼有很大局限性,不夠靈活,耦合性太高,不適合工程化的項(xiàng)目開(kāi)發(fā)。

        4 使用設(shè)計(jì)模式的WEB教育資源管理系統(tǒng)

        4.1 使用簡(jiǎn)單工廠(chǎng)模式的WEB教育資源管理系統(tǒng)

        為了提高上述代碼的靈活性,降低耦合度,用戶(hù)在創(chuàng)建對(duì)象時(shí)不必事先知道每次是要實(shí)例化哪一個(gè)類(lèi),為此我們引入了工廠(chǎng)設(shè)計(jì)模式中的簡(jiǎn)單工廠(chǎng)設(shè)計(jì)模式來(lái)解決這一問(wèn)題。具體做法是,將創(chuàng)建實(shí)例的操作與使用實(shí)例的操作分開(kāi),構(gòu)建一個(gè)模擬生成資源對(duì)象的工廠(chǎng),把創(chuàng)建資源對(duì)象的操作全都放到了工廠(chǎng)里面去,客戶(hù)端直接使用工廠(chǎng)內(nèi)的創(chuàng)建資源對(duì)象的方法,只要傳入需要的資源類(lèi)型就行了,而不必去知道創(chuàng)建的細(xì)節(jié)。在加入簡(jiǎn)單工廠(chǎng)設(shè)計(jì)模式后,圖1中類(lèi)的關(guān)系修改如圖2所示。

        圖2 使用簡(jiǎn)單工廠(chǎng)模式的教育資源類(lèi)圖

        按照?qǐng)D2的類(lèi)設(shè)計(jì)思路,假若現(xiàn)在要分別調(diào)用文本資源類(lèi)、圖形/像資源類(lèi)和視頻資源類(lèi)的顯示方法來(lái)顯示相應(yīng)的資源內(nèi)容,就可以按以下代碼方式去實(shí)現(xiàn):

        1)建立一個(gè)專(zhuān)門(mén)生產(chǎn)Resource實(shí)例的的工廠(chǎng)

        這樣,只需要傳入需要?jiǎng)?chuàng)建資源的類(lèi)型字符,工廠(chǎng)就會(huì)實(shí)例化合適的對(duì)象,通過(guò)多態(tài),返回父類(lèi)的方式實(shí)現(xiàn)了各種教育資源的顯示。

        4.2 使用工廠(chǎng)方法模式的WEB教育資源管理系統(tǒng)

        按照簡(jiǎn)單工廠(chǎng)設(shè)計(jì)模式的做法,解決了創(chuàng)建對(duì)象的問(wèn)題,降低了與具體類(lèi)型資源的依賴(lài)。但也存在一些不夠理想的地方,比如今后新增一種資源,除了增加相應(yīng)的資源類(lèi)以外,還得修改原有的資源工廠(chǎng)類(lèi),在switch中增加分支,這樣不但對(duì)擴(kuò)展開(kāi)放了,對(duì)修改也開(kāi)放了,這樣就違背了“開(kāi)放-封閉原則”。為此,我們采用工廠(chǎng)方法模式來(lái)解決這一問(wèn)題。

        根據(jù)依賴(lài)倒轉(zhuǎn)原則,我們把工廠(chǎng)類(lèi)抽象出一個(gè)接口,這個(gè)接口只有一個(gè)方法,就是創(chuàng)建抽象產(chǎn)品(這里產(chǎn)品指資源)的工廠(chǎng)方法。然后,所有的要生產(chǎn)具體類(lèi)的工廠(chǎng),就去實(shí)現(xiàn)這個(gè)接口,這樣,一個(gè)簡(jiǎn)單工廠(chǎng)模式的工廠(chǎng)類(lèi),變成了一個(gè)工廠(chǎng)抽象接口和多個(gè)具體生成對(duì)象的工廠(chǎng),于是我們今后要新增一個(gè)教育資源時(shí),就不需要更改原有的工廠(chǎng)類(lèi)了,只需要增加此資源類(lèi)和相應(yīng)的工廠(chǎng)類(lèi)就可以了。應(yīng)用工廠(chǎng)方法模式后,WEB教育資源管理系統(tǒng)中資源的類(lèi)圖修改如圖3所示。

        圖3 使用工廠(chǎng)方法模式的教育資源類(lèi)圖

        按照?qǐng)D3的類(lèi)設(shè)計(jì)思路,假若現(xiàn)在要分別調(diào)用文本資源類(lèi)、圖形/像資源類(lèi)和視頻資源類(lèi)的顯示方法來(lái)顯示相應(yīng)的資源內(nèi)容,在客戶(hù)端通常用以下代碼來(lái)實(shí)現(xiàn):

        這樣,只需要修改資源工廠(chǎng)類(lèi)名就可以創(chuàng)建相應(yīng)的資源實(shí)例了,不要再修改原有的資源工廠(chǎng)類(lèi)了,這樣既克服了簡(jiǎn)單工廠(chǎng)違背開(kāi)放-封閉原則的缺點(diǎn),又保持了封裝對(duì)象創(chuàng)建過(guò)程的優(yōu)點(diǎn),使得要?jiǎng)?chuàng)建其它對(duì)象時(shí),不需要做大的改動(dòng)就可實(shí)現(xiàn),降低了客戶(hù)端程序與資源類(lèi)的耦合。

        5 結(jié)束語(yǔ)

        本文論述了工廠(chǎng)模式中的簡(jiǎn)單工廠(chǎng)設(shè)計(jì)模式和工廠(chǎng)方法設(shè)計(jì)模式在重構(gòu)WEB教育資源管理系統(tǒng)中的應(yīng)用,通過(guò)對(duì)比展示應(yīng)用模式后可以很好地解決功能的擴(kuò)展的問(wèn)題以及提高代碼的可重用性和可維護(hù)性。當(dāng)開(kāi)發(fā)人員在編碼時(shí)不能預(yù)見(jiàn)需要?jiǎng)?chuàng)建哪一種類(lèi)的實(shí)例或不希望創(chuàng)建了哪個(gè)類(lèi)的實(shí)例以及如何創(chuàng)建實(shí)例的信息暴露給外部程序的時(shí)候,我們建議這個(gè)時(shí)候使用工廠(chǎng)模式是較好的一種方案,因?yàn)楣S(chǎng)模式就是專(zhuān)門(mén)負(fù)責(zé)將大量有共同接口的類(lèi)實(shí)例化,而且不必事先知道每次是要實(shí)例化哪一個(gè)類(lèi)的模式。

        [1]程杰.大話(huà)設(shè)計(jì)模式[M].北京:清華大學(xué)出版社,2009.

        [2]徐衛(wèi)星.設(shè)計(jì)模式之工廠(chǎng)模式在招生系統(tǒng)中的應(yīng)用[J].微型機(jī)與應(yīng)用,2007,(11).

        [3]Erich Gamma,Richard Helm,Ralph Johnson,John Vlissides. Design Paaerns:Elements of Reusable Object-Oriented software[M].北京:機(jī)械工業(yè)出版社,2005.

        [4]唐文芳.在數(shù)據(jù)訪(fǎng)問(wèn)層使用抽象工廠(chǎng)設(shè)計(jì)模式的c#實(shí)現(xiàn)[J].硅谷,2009,(8).

        猜你喜歡
        資源方法
        讓有限的“資源”更有效
        基礎(chǔ)教育資源展示
        一樣的資源,不一樣的收獲
        學(xué)習(xí)方法
        資源回收
        資源再生 歡迎訂閱
        資源再生(2017年3期)2017-06-01 12:20:59
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢(qián)方法
        一女被多男玩喷潮视频| 精品午夜一区二区三区| 白色月光免费观看完整版| 久久久精品国产亚洲av网深田| 久久9精品区-无套内射无码| 成人伊人亚洲人综合网站222| 精品国产自拍在线视频| 亚洲av熟女中文字幕| 24小时日本在线视频资源| 97精品伊人久久大香线蕉| 色偷偷女人的天堂亚洲网| 国产精品自拍午夜伦理福利| 无码aⅴ精品一区二区三区浪潮| 国产色诱视频在线观看| 亚洲av中文aⅴ无码av不卡| 中文字幕亚洲精品专区| 日本又色又爽又黄的a片18禁| 免费无码av片在线观看网址| 91久久精品一二三区蜜桃| 久久精品亚洲成在人线av乱码| 亚洲av永久无码精品网址| 国产鲁鲁视频在线播放| 亚洲美女主播一区二区| 在线观看一级黄片天堂| 免费国产黄网站在线观看| 香蕉国产人午夜视频在线观看| 色噜噜狠狠综曰曰曰| 日日摸夜夜添夜夜添无码免费视频 | 国产精品国产三级国产av主| 国产三级精品av在线| 国产精品∧v在线观看| 久久99欧美| 久久综合久中文字幕青草| 久久久久高潮综合影院| 免费人成视频在线观看网站| 国产粉嫩高清| 青青草成人免费在线观看视频| 亚洲欧美日韩在线不卡 | 国产真实伦视频在线视频| 亚洲国产综合精品中久| 亚洲精品无码久久久影院相关影片 |