• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于抽象工廠模式的科研項目管理系統(tǒng)的設(shè)計

      2017-10-21 10:27:41李紹華馮晶瑩
      電腦知識與技術(shù) 2017年20期
      關(guān)鍵詞:三層架構(gòu)

      李紹華+馮晶瑩

      摘要:該文將傳統(tǒng)三層架構(gòu)模式和基于抽象工廠模式的三層架構(gòu)進行了對比?;诟倪M的三層架構(gòu)模式,使用Visual Stu-dio 2013和SQL Server 2012設(shè)計和開發(fā)了科研項目管理系統(tǒng),實現(xiàn)項目管理的信息化。使用存儲過程提高系統(tǒng)的執(zhí)行效率和安全性。

      關(guān)鍵詞:科研系統(tǒng);三層架構(gòu);抽象工廠;ASP.NET

      1背景

      隨著高校教師對科研項目申報數(shù)量的增加,項目管理部門的任務(wù)日漸繁重,而使用傳統(tǒng)手工方式對項目進行管理的形式越來越不能適應(yīng)時代發(fā)展的要求,嚴(yán)重影響了相關(guān)人員的工作效率和準(zhǔn)確性。

      信息化和網(wǎng)絡(luò)化進程的不斷加速,在大數(shù)據(jù)時代通過運用現(xiàn)代網(wǎng)絡(luò)和計算機技術(shù),構(gòu)建高效和實用的信息管理平臺,實現(xiàn)科研項目管理工作的數(shù)字化成為可能,它可以有效的縮短管理時間、簡化管理過程。

      2三層架構(gòu)體系結(jié)構(gòu)

      NET軟件項目設(shè)計為了實現(xiàn)“高內(nèi)聚、低耦合”的設(shè)計思想,通常使用三層架構(gòu)模式(視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)訪問層),將項目代碼根據(jù)功能寫在不同的層次模型中。如圖1所示。

      1)視圖層:直接和用戶進行交互,收集用戶在界面中輸入的數(shù)據(jù)并通過調(diào)用方法時,實參給形參傳值,傳遞給業(yè)務(wù)邏輯層;將業(yè)務(wù)邏輯層方法返回的數(shù)據(jù)以某種形式顯示在界面中。

      2)業(yè)務(wù)邏輯層:負責(zé)數(shù)據(jù)的加工處理,在視圖層和數(shù)據(jù)訪問層之間起到數(shù)據(jù)中轉(zhuǎn)站的作用。

      3)數(shù)據(jù)訪問層:負責(zé)數(shù)據(jù)的存儲和讀取。根據(jù)業(yè)務(wù)邏輯層傳遞過來的指令和數(shù)據(jù),通過INSERT、UPDATE、DELETE或SELECT語句操作數(shù)據(jù)庫。.NET框架中使用ADO.NET的連接類、命令類、數(shù)據(jù)讀取類、數(shù)據(jù)適配器類和數(shù)據(jù)集類等操作數(shù)據(jù)庫。

      4)實體層:將數(shù)據(jù)庫中關(guān)系型表進行面向?qū)ο蠡幚?,實現(xiàn)數(shù)據(jù)對象在視圖層和業(yè)務(wù)邏輯層之間的傳遞。

      根據(jù)項目規(guī)模和需求,可以選擇Oracle、SQL Server、DB2、Sybase、MySQL、Access等關(guān)系型數(shù)據(jù)庫。這些數(shù)據(jù)庫都遵循結(jié)構(gòu)化查詢語句(Structure Query Language,SQL),但不同數(shù)據(jù)庫的SQL文、存儲過程、函數(shù)、觸發(fā)器、游標(biāo)的使用規(guī)則不盡相同。

      在ADO.NET框架中,針對不同數(shù)據(jù)庫使用不同的命名空間中的類。例如:

      在傳統(tǒng)的三層架構(gòu)體系中,視圖層依賴于業(yè)務(wù)邏輯層,業(yè)務(wù)邏輯層依賴于數(shù)據(jù)訪問層。如果后臺使用的數(shù)據(jù)庫發(fā)生變化,數(shù)據(jù)訪問層和業(yè)務(wù)邏輯層的代碼都需要大量修改,不利于系統(tǒng)的擴展。3抽象工廠模式

      例如,A廠生產(chǎn)布料,B廠生產(chǎn)紐扣,c廠生產(chǎn)針線。但客戶要的是衣服,這樣就需要一個D廠,D就是專門制作衣服的??蛻粜枰路槐厝フ褹BC廠,直接找D即可??蛻粢膊槐刂繢的衣服是怎樣做成的。ABC廠的變化不會直接影響到客戶。

      抽象工廠模式提供創(chuàng)建一系列相關(guān)或相互依賴的接口,而無需指定他們具體的類。從字面上的理解就是給上一層或調(diào)用者提供一系列功能的接口,讓上層或調(diào)用者自己去實現(xiàn)。在具體工廠中負責(zé)創(chuàng)建產(chǎn)品結(jié)構(gòu)中每個產(chǎn)品,它包含了創(chuàng)建不同產(chǎn)品的商業(yè)邏輯,實現(xiàn)抽象工廠中的接口,定義產(chǎn)品的共同接口。

      抽象工廠模式可有效降低模塊間的耦合性,最大限度地實現(xiàn)軟件復(fù)用,實現(xiàn)“高內(nèi)聚、低耦合”的設(shè)計目的。

      4基于抽象工廠模式的三層架構(gòu)體系

      為了解決傳統(tǒng)三層架構(gòu)模式層與層高依賴度,不利于擴展的弊端,推薦使用基于抽象工廠模式的三層架構(gòu)體系。抽象工廠模式引入了面向接口編程思想,使上層類不具體依賴于下層類,而只依賴于下層提供的一個接口。將數(shù)據(jù)訪問層細分為數(shù)據(jù)接口層、數(shù)據(jù)接口實現(xiàn)層、數(shù)據(jù)工廠層以及數(shù)據(jù)工具層,從而使得業(yè)務(wù)邏輯層依賴于數(shù)據(jù)接口層,與后臺數(shù)據(jù)庫不發(fā)生直接關(guān)系。基于工廠模式的三層架構(gòu)體系如圖2所示。

      如果項目更換后臺數(shù)據(jù)庫,只需要修改抽象工廠模式的數(shù)據(jù)訪問層即可。

      5科研系統(tǒng)的框架設(shè)計

      1)使用Visual Studio 2013創(chuàng)建名為SRM的空白解決方案。新增名為SRMUI的ASP.NET空網(wǎng)站項目;名為Business、DALFactory、DBUtility、Entity、IDAL、SQLServerDAL和ToolUtili-ty的類庫項目,如圖3所示。

      為了便于統(tǒng)一管理,設(shè)置七個類庫項目的程序集名稱和默認命名空間為SRM.Business、SRM.DALFactory、SRM.DBUtility、SRM.Entity、SRM.IDAL、SRM.SQLServerDAL和SRM.ToolUtili-ty。如圖4所示。

      根據(jù)依賴關(guān)系,為程序集添加引用:SRMUI引用Business、Entity和ToolUtility;Business引用IDAL、DALFactory和Entity;DALFaetory引用IDAL;IDAL引用Entity;SQLServerDAL引用DBUtility、IDAL和Entity。

      21為數(shù)據(jù)庫中每張表,在Business程序集中創(chuàng)建對應(yīng)的業(yè)務(wù)邏輯類,如圖5示。該層不直接依賴數(shù)據(jù)訪問層,而是依賴IDAL接口層和DALFaetory工廠層。通過工廠層創(chuàng)建程序集指定類的實例,并決定調(diào)用哪個數(shù)據(jù)訪問層的數(shù)據(jù)操作方法。

      3)為數(shù)據(jù)庫中每張表,在Entity程序集中創(chuàng)建對應(yīng)的實體類,如圖6所示。實現(xiàn)數(shù)據(jù)以對象的形式在SRMUI、Business、IDAL和SQLServerDAL之間傳遞。

      4)為數(shù)據(jù)庫中每張表,在IDAL程序集中創(chuàng)建對應(yīng)的數(shù)據(jù)接口,如圖7所示。接口中聲明了在SQLServerDAL程序集中實現(xiàn)的方法。

      5)為數(shù)據(jù)庫中每張表,在SQLServerDAL程序集中創(chuàng)建對應(yīng)的數(shù)據(jù)接口實現(xiàn)類,實現(xiàn)IDAL程序集中接口的方法,如圖8所示。根據(jù)數(shù)據(jù)庫的類型,可以定義OracleDAL、MySQLDAL或AccessDAL等。

      在SQLServerDAL程序集中,本項目使用存儲過程實現(xiàn)對數(shù)據(jù)庫的操作,原因如下:

      ①執(zhí)行效率高。存儲過程只在創(chuàng)建時進行編譯,以后每次執(zhí)行存儲過程都不需再重新編譯,而SQL語句每執(zhí)行一次就編譯一次。

      ②方便事務(wù)處理。當(dāng)對數(shù)據(jù)庫進行多個復(fù)雜操作時,可將復(fù)雜操作用存儲過程封裝起來與數(shù)據(jù)庫提供的事務(wù)處理結(jié)合一起使用。

      ③提高代碼復(fù)用性。存儲過程可以重復(fù)使用,減少數(shù)據(jù)庫開發(fā)人員的工作量。

      ④安全性高。通過權(quán)限設(shè)定,可指定只有某些用戶才具有對指定存儲過程的使用權(quán)。

      ⑤減少網(wǎng)絡(luò)流量。存儲過程位于服務(wù)器上,調(diào)用的時候只需要傳遞存儲過程名稱以及參數(shù)即可,降低網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量。

      6)在DALFactory程序集中添加DataAccess類,如圖9所示。DALFactory通過配置文件和反射機制實現(xiàn)SQLServerDAL的實例化,是通過多態(tài)機制實現(xiàn)的,如圖10所示。這樣的好處就是如果要更換數(shù)據(jù)庫,只需要更改Web.config配置文件,如圖11所示。

      使用反射機制動態(tài)的創(chuàng)建類型的實例,將類型綁定到現(xiàn)有對象,或從現(xiàn)有對象中獲取類型應(yīng)用程序需要在運行時從某個特定的程序集中載人一個特定的類型,以便實現(xiàn)某個任務(wù)時可以用到反射。反射主要應(yīng)用于類庫,這些類庫需要知道一個類型的定義,以便提供更多的功能。

      7)在DBUtility程序集中添加SQLDBHelper類,實現(xiàn)與SQLServer數(shù)據(jù)庫的交互。如圖12所示。根據(jù)數(shù)據(jù)庫的種類,可以定義0racleDBHelper、MySQLDBHelper或AccessDBHelper等。

      8)在ToolUtility程序集中添加若干個工具類。如圖13所示。

      6科研系統(tǒng)的運行

      科研項目管理系統(tǒng)的首頁運行如圖14所示。

      7結(jié)束語

      科研項目管理信息化平臺可以實現(xiàn)對項目活動的全程跟蹤。信息化平臺將人員、項目、評審、成果和權(quán)限等管理有機結(jié)合在一起,有效地提高了項目成果管理水平和效率?;诔橄蠊S模式三層體系架構(gòu)的使用,便于項目的移植和擴展。endprint

      猜你喜歡
      三層架構(gòu)
      基于“三層架構(gòu)”理論的教學(xué)設(shè)計案例分析
      良好的信息系統(tǒng)體系結(jié)構(gòu)模式對網(wǎng)絡(luò)安全監(jiān)察與維護技術(shù)的方法的探討
      ASP.NET三層架構(gòu)體系分析與應(yīng)用
      基于SSH 的實驗室管理系統(tǒng)設(shè)計與實現(xiàn)
      达拉特旗| 应城市| 丹寨县| 山阳县| 沧源| 兴海县| 会泽县| 宜宾县| 潍坊市| 商河县| 新河县| 彩票| 霍城县| 金昌市| 汉阴县| 扎兰屯市| 华亭县| 珠海市| 内丘县| 牙克石市| 隆德县| 丘北县| 莱西市| 雅安市| 文安县| 平凉市| 玛沁县| 耒阳市| 定襄县| 托克逊县| 凭祥市| 肃南| 六安市| 泸西县| 云梦县| 木里| 富阳市| 皮山县| 石林| 辽宁省| 务川|