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

        ?

        基于策略模式的存儲(chǔ)過程使用研究

        2017-12-29 04:25:15
        關(guān)鍵詞:策略方法

        許 俊

        (四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,四川 遂寧 629000)

        基于策略模式的存儲(chǔ)過程使用研究

        許 俊

        (四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,四川 遂寧 629000)

        應(yīng)用策略模式來研究返回?cái)?shù)據(jù)結(jié)果集的存儲(chǔ)過程在前端高層模塊的使用.在策略模式設(shè)計(jì)思維下,每個(gè)存儲(chǔ)過程調(diào)用視為一種策略,每一種策略即是一個(gè)類,去實(shí)現(xiàn)它上層對(duì)策略家族的抽象.本文按有參和無參兩類存儲(chǔ)過程作詳細(xì)分析,設(shè)計(jì)類圖,并實(shí)現(xiàn).所研究的使用模式,進(jìn)一步提高了系統(tǒng)的復(fù)用性、可維護(hù)性.

        策略模式;數(shù)據(jù)庫;存儲(chǔ)過程

        1 策略模式

        策略模式是定義了算法家族,封裝每一個(gè)算法,每一個(gè)算法能夠互相替換.算法家族的各個(gè)算法完成相同的操作,只不過實(shí)現(xiàn)的方式不同而已.調(diào)用它們的方式是同樣的,這樣就減少了各個(gè)算法類與調(diào)用算法的類的耦合.

        策略模式的適用性是下面的范圍:多個(gè)關(guān)聯(lián)的類只是它們的操作有一些差異;稍有變異的實(shí)體使用一個(gè)算法;需要對(duì)調(diào)用者隱藏算法和數(shù)據(jù)結(jié)構(gòu).策略模式的一般類圖如圖1:

        圖1 策略模式的一般類圖

        Stategy:指策略,定義全體公共的接口,Context通過些接口調(diào)用 ConcreteStrategyA、ConcreteStrategyB、ConcreteStrategyC 等定義的算法.

        ConcreteStrategy:具體策略,以Strategy實(shí)現(xiàn)某個(gè)具體的算法.

        Context:策略相關(guān)文本.引用Strategy對(duì)象,用一個(gè)具體的策略 ConcreteStrategyA、ConcreteStrategyB、ConcreteStrategyC 等對(duì)象作配置.

        2 存儲(chǔ)過程的一般使用方式

        在前端應(yīng)用開發(fā)中,簡單分層結(jié)構(gòu)設(shè)計(jì)常常把存儲(chǔ)過程調(diào)用封裝到一個(gè)數(shù)據(jù)訪問類,用戶層通過調(diào)用這個(gè)類的方法去調(diào)用存儲(chǔ)過程,使界面層UI與數(shù)據(jù)訪問層DAO初步解耦.迪米特法則要求,一個(gè)對(duì)象應(yīng)該最少地了解其它對(duì)象,一個(gè)類對(duì)其調(diào)用類的屬性、方法等應(yīng)盡量少知道.因而這種應(yīng)用方式的設(shè)計(jì),有一個(gè)顯著的缺陷,那就是數(shù)據(jù)訪問層DAO會(huì)把所有的public方法暴露給客戶端UI,而不管客戶端的某個(gè)調(diào)用是否真正需要訪問那么多方法,會(huì)導(dǎo)致前端UI與數(shù)據(jù)層的耦合度升高.如果把對(duì)每個(gè)存儲(chǔ)過程的調(diào)用封裝為一個(gè)職責(zé)單一的類,這樣與前端耦合很低,但面對(duì)眾多的存儲(chǔ)過程時(shí),這種過度的設(shè)計(jì)增加了系統(tǒng)開發(fā)維護(hù)的復(fù)雜性.

        3 基于策略模式的存儲(chǔ)過程使用設(shè)計(jì)

        3.1 設(shè)計(jì)思路

        本文另辟蹊徑,應(yīng)用策略模式來研究存儲(chǔ)過程在前端高層模塊的使用.在策略模式設(shè)計(jì)思維下,每個(gè)存儲(chǔ)過程調(diào)用視為一種策略,每一種策略即是一個(gè)類,需要實(shí)現(xiàn)它上層的抽象,上層類是整個(gè)策略家族的抽象.

        本文以執(zhí)行查詢語句返回?cái)?shù)據(jù)結(jié)果集的存儲(chǔ)過程為研究對(duì)象,把研究對(duì)象分為無參數(shù)和有參數(shù)的存儲(chǔ)過程,遵從接口隔離原則,策略抽象也分為兩類,一類是其抽象的方法中不帶參數(shù),是所有無參數(shù)調(diào)用存儲(chǔ)過程的抽象表達(dá),另一類是其抽象的方法中帶參數(shù),是所有帶參數(shù)的存儲(chǔ)過程調(diào)用的抽象表達(dá).每個(gè)具體的策略實(shí)現(xiàn)一個(gè)抽象策略中的方法,即對(duì)數(shù)據(jù)庫中的存儲(chǔ)過程進(jìn)行調(diào)用.封裝策略的類也因此有帶參數(shù)的策略類和不帶參數(shù)的策略類,具體策略根據(jù)其實(shí)現(xiàn)的抽象類,被封裝到相應(yīng)的策略封裝類中,屏蔽了高層模塊對(duì)低層策略算法的直接訪問.此時(shí)數(shù)據(jù)訪問類DAO成為抽象類的protected修飾的內(nèi)部屬性,只提供給其子類訪問,也不與高層模塊耦合了.

        3.2 類圖

        現(xiàn)有三個(gè)存儲(chǔ)過程,up_teacher不帶參數(shù)查詢老師信息,up_studentByClass按班級(jí)查詢學(xué)生信息,班名是參數(shù),up_reportByCourse以課程名為參數(shù),查詢指定的一門課程成績,由此識(shí)別出三個(gè)類:老師類Teacher、學(xué)生類Student、成績報(bào)表類Report.畫出類圖如圖2:

        圖2 存儲(chǔ)過程的相關(guān)類圖

        StrategyWithoutPara是無參數(shù)策略的抽象類,其中包含抽象DAO屬性和不帶參數(shù)返回?cái)?shù)據(jù)集的方法getDataSet(),Teacher類繼承此抽象類,覆寫它的getDataSet方法,間接調(diào)用了DAO中的up_teacher存儲(chǔ)過程.

        StrategyWithtPara是有參數(shù)策略的抽象,其中也包含DAO屬性和帶參數(shù)返回?cái)?shù)據(jù)集的方法getDataSet(ArrayListParaList),Student類繼承此抽象類,覆寫它的getDataSet(ArrayListParaL-ist)方法,間接調(diào)用了DAO中的up_studentBy-Class存儲(chǔ)過程.

        ContextWithoutPara類封裝所有方法中不帶參數(shù)的具體策略,即具體算法或行為getDataSet(),維護(hù)對(duì)一個(gè)StrategyWithoutPara對(duì)象的引用.

        ContextWithPara類封裝所有方法中帶參數(shù)的具體策略,具體算法或行為getDataSet(ArrayList ParaList),維護(hù)對(duì)一個(gè)StrategyWithPara對(duì)象的引用.

        DAO類封裝了對(duì)后臺(tái)數(shù)據(jù)庫連接管理、數(shù)據(jù)訪問、存儲(chǔ)過程調(diào)用,作為抽象類StrategyWithtPara和StrategyWithtoutPara的屬性對(duì)象,提供方法供抽象類調(diào)用.

        Client場(chǎng)景類模擬高層模塊,聲明具體的策略和對(duì)具體策略的封裝類ContextWithout、ParaStrategyWithtPara,執(zhí)行封裝后的方法getDataSet、getDataSet(ArrayListParaList).

        如果系統(tǒng)功能需要擴(kuò)展,如查詢某門課程成績,只需添加Report子類,并繼承Strategy WithtPara類,在覆寫帶參數(shù)的方法getDataSet(ArrayListParaList)里,調(diào)用up_reportByCourse即可,高層模塊通過Report類產(chǎn)生新的類,實(shí)現(xiàn)業(yè)務(wù)的變化對(duì)系統(tǒng)的最小化影響,不用修改其它類,只作橫向擴(kuò)展,也符合“對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉”的開閉原則,提高了系統(tǒng)的復(fù)用性、可維護(hù)性.

        4 基于策略模式的存儲(chǔ)過程使用實(shí)現(xiàn)

        高層模塊的調(diào)用極其簡略,代碼調(diào)用也很簡潔,當(dāng)需要使用哪一個(gè)具體的策略時(shí),實(shí)例出它對(duì)應(yīng)的對(duì)象,放入封裝類里,再執(zhí)行它的封裝方法,過程也十分明了。采用繼承和多態(tài)的對(duì)象機(jī)制,策略模式使得系統(tǒng)以增加新類實(shí)現(xiàn)其抽象接口的方式方便地?cái)U(kuò)展了系統(tǒng)。

        [1]AlanShalloway.設(shè)計(jì)模式解析[M].徐言聲,譯.北京:人民郵電出版社,2016.

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

        [3]秦小波.設(shè)計(jì)模式之禪[M].北京:機(jī)械工業(yè)出版社,2011.

        [4]許俊.對(duì)非1NF關(guān)系查詢的探討[J].四川職業(yè)技術(shù)學(xué)院學(xué)報(bào),2013,(5).

        [5]許俊.對(duì)Oracle多表關(guān)聯(lián)更新的應(yīng)用研究[J].四川職業(yè)技術(shù)學(xué)院學(xué)報(bào),2015,(2).

        On the Usage of Stored Procedure Based on Strategy Pattern

        XU Jun
        (Computer Science Department, Sichuan Vocational and Technical College, Suining Sichuan,629000)

        The paper applies the strategy pattern to study the use of the stored procedure of the return data result set at the front end of the high-level module. Under the design of strategy pattern,each stored procedure call is treated as a strategy,and each strategy is a class,to achieve the abstraction of the upper to the strategy family.With a detailed analysis of the two types of storage processes (with and without parameters),we design the class diagram and realize the use of the pettern to further improve the system’s reusability and maintainability.

        Strategy Patttern;Database;Stored Procedure

        張隆輝

        TP311.1

        A

        1672-2094(2017)05-0147-04

        2017-05-26

        四川省教育廳重點(diǎn)科研項(xiàng)目“基于NoSQL大數(shù)據(jù)技術(shù)的信息搜索方案研究”(編號(hào):15ZA0348)、“網(wǎng)絡(luò)大數(shù)據(jù)測(cè)試基準(zhǔn)研究”(編號(hào):15ZA0349)成果之一.

        許 俊(1969-),男,四川蓬溪人,四川職業(yè)技術(shù)學(xué)院副教授,碩士.研究方向:軟件工程,數(shù)據(jù)庫技術(shù).

        猜你喜歡
        策略方法
        基于“選—練—評(píng)”一體化的二輪復(fù)習(xí)策略
        求初相φ的常見策略
        例談未知角三角函數(shù)值的求解策略
        我說你做講策略
        學(xué)習(xí)方法
        高中數(shù)學(xué)復(fù)習(xí)的具體策略
        可能是方法不對(duì)
        用對(duì)方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        欧美性猛交aaaa片黑人| 久9热免费精品视频在线观看| 又色又爽又黄的视频网站| 日本一级三级在线观看| 国产精品午夜福利视频234区| 手机看片福利一区二区三区| 二区在线视频| 久久久精品国产亚洲av网| 国产亚洲午夜精品久久久| 国产电影一区二区三区| 在线观看国产精品日韩av| 九九99久久精品午夜剧场免费| 81久久免费精品国产色夜| 免费a级毛片无码a∨蜜芽试看| 亚洲av综合久久九九| 亚洲女同精品一区二区久久 | 久久久久99人妻一区二区三区| 色一情一乱一乱一区99av| 国产精品三级在线观看| 国产一区二区三区日韩精品| 亚洲精品国产av成人精品| 精品无码久久久久久国产| 国产污污视频| 中文字幕一区二区区免| 国产成人精品蜜芽视频| 欧美人与动zozo| 亚洲一区二区情侣| 亚洲一区二区三区av资源| 在线看片免费人成视频电影| 污污污污污污WWW网站免费| av毛片在线播放网址| 丁香婷婷在线成人播放视频| 任你躁国产自任一区二区三区| 久久综合亚洲色社区| 国产不卡av一区二区三区| 小说区激情另类春色| 欧美国产日韩a在线视频| 国产成人综合久久三区北岛玲| 黄射视频在线观看免费| 中文字幕v亚洲日本| 中文字幕avdvd|