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

        ?

        軟件設(shè)計(jì)模式分析

        2020-02-29 10:39:57溫立輝
        科技創(chuàng)新與應(yīng)用 2020年7期

        摘? 要:針對(duì)問(wèn)題場(chǎng)景中如何選擇與之相匹配的模式方案,討論了軟件工程中的模式思想,同時(shí)分析了特定場(chǎng)合中如何尋找、套用合適的問(wèn)題解決方案,最后深入闡述幾種常用模式方案的原理以及語(yǔ)法結(jié)構(gòu)。

        關(guān)鍵詞:設(shè)計(jì)模型;思想復(fù)用;門(mén)面;適配器;模板方法

        中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)志碼:A? ? ? ? ?文章編號(hào):2095-2945(2020)07-0092-02

        Abstract: Aiming at how to choose the matching pattern scheme in the problem scenario, this paper discusses the pattern idea in software engineering, and analyzes how to find and apply the appropriate problem solution in a specific situation. Finally, the principles and grammatical structures of several commonly used pattern schemes are described in detail.

        Keywords: design model; thought reuse; facade; adapter; template method

        1 概述

        模式方案也稱(chēng)之為設(shè)計(jì)模式,是編程界的重要基石,其本質(zhì)上是一套問(wèn)題的解決方案,體現(xiàn)了思想級(jí)別的成果復(fù)用,在軟件開(kāi)發(fā)生命周期不斷縮短,軟件產(chǎn)品通過(guò)用性、擴(kuò)展性、復(fù)用性要求越來(lái)越高的今天,其日益受到人們的重視。

        2 軟件設(shè)計(jì)模式的類(lèi)型

        設(shè)計(jì)模式最早是在1990年由Erich Gamma等程序員提出,靈感源自從建筑設(shè)計(jì)領(lǐng)域,進(jìn)而引入到軟件工程開(kāi)發(fā)中來(lái)。在傳統(tǒng)的編程領(lǐng)域,模式方案眾多,多達(dá)二三十套,每一種都包含特定的思想與智慧,使復(fù)雜的場(chǎng)景簡(jiǎn)單化。以下對(duì)幾種常用的設(shè)計(jì)模式作深入全面的分析。

        2.1 門(mén)面模式(Facade)

        門(mén)面模式也叫層面模式,是指不同的模塊或系統(tǒng)間進(jìn)行交互時(shí),通過(guò)代理接口的形式進(jìn)行,而不是直接交互。門(mén)面模式使得系統(tǒng)間通信變得標(biāo)準(zhǔn)、統(tǒng)一,極大地降低了系統(tǒng)的耦合,非常有利系統(tǒng)的移植、擴(kuò)充、維護(hù)、復(fù)用等。

        門(mén)面模式的提出是為了解決系統(tǒng)對(duì)外通過(guò)過(guò)程中,耦合性過(guò)高的問(wèn)題。考慮這樣一個(gè)問(wèn)題,有兩個(gè)開(kāi)發(fā)小組:WEB前端開(kāi)發(fā)小組、應(yīng)用系統(tǒng)后臺(tái)開(kāi)發(fā)小組,每個(gè)小組有十個(gè)程序員,若兩個(gè)小組的交互采用組員直接通信,兩個(gè)組間將會(huì)產(chǎn)生100種交互方式,非常不利于對(duì)項(xiàng)目經(jīng)理(PM)對(duì)兩個(gè)開(kāi)發(fā)小組的管理。如果在兩個(gè)開(kāi)發(fā)小組之間各指定某個(gè)人作為組長(zhǎng),兩小組之間的通信通過(guò)組長(zhǎng)來(lái)做門(mén)面進(jìn)行交互,那么兩個(gè)小組間只有一種交互方式,就能極大的降低了PM對(duì)項(xiàng)目組管理的難度。

        門(mén)面模式結(jié)構(gòu)如圖1所示,在一個(gè)商店模塊中有Drink(飲料)、Food(食品)、Toy(玩具)等商品,同時(shí)有一個(gè)Saleman(店員)類(lèi)作為商店模塊的門(mén)面,當(dāng)外部的Customer(顧客)類(lèi)要購(gòu)買(mǎi)商店中商品時(shí),則通過(guò)店員門(mén)面類(lèi)提供的sale方法,來(lái)統(tǒng)一操作相關(guān)業(yè)務(wù)行為,顧客類(lèi)不能直接操作商店模塊中的所有組件(類(lèi))。

        2.2 適配器模式(Adapter)

        適配器模式是指形式不兼容的組件通過(guò)中間類(lèi)的整合,使其能為第三方接口服務(wù)。適配器模式的提出是為了解決程序設(shè)計(jì)過(guò)程中接口不兼容問(wèn)題,提升模塊的協(xié)作效應(yīng),同時(shí)增強(qiáng)了軟件的復(fù)用能力。

        適配器模式如何讓不兼容接口間一起協(xié)同工作呢?考慮這樣的一個(gè)場(chǎng)景,來(lái)自A國(guó)家的商人要尋購(gòu)買(mǎi)某種商品,來(lái)自B國(guó)家的商人則要出售該種商品,但兩個(gè)商人因?yàn)檎Z(yǔ)言之間的障礙無(wú)法溝通,生意無(wú)法達(dá)成;這時(shí)引入一個(gè)第三方翻譯作為溝通的中介,在這個(gè)翻譯的幫助下,最終達(dá)成交易,那么這個(gè)中介翻譯的作用一個(gè)語(yǔ)言的適配器角色適配器模式的組成結(jié)構(gòu)如圖2所示,有一個(gè)手機(jī)(Mobile)類(lèi)使用的是電池直流電源供電,現(xiàn)在有一個(gè)家用電源(Home_Power)只能提供交流電源,Mobile類(lèi)與Home_Power類(lèi)不兼容,不能直接協(xié)協(xié)同工作,現(xiàn)在通過(guò)電源配置器類(lèi)(Electricity_Adapter)的轉(zhuǎn)換來(lái)使他們能夠工作起來(lái)(交流電轉(zhuǎn)換為直流電)。首先,Electricity_Adapter繼承了Mobile類(lèi)并覆蓋unchange_electricity方法,并在此方法中調(diào)用Home_Power類(lèi)的change_electricity方法,因而Electricity_Adapter就成了兩者間的轉(zhuǎn)換類(lèi),當(dāng)用戶(hù)(User)通過(guò)Mobile來(lái)調(diào)用unchange_electricity方法時(shí),通過(guò)Electricity_Adapter的轉(zhuǎn)換就能讓Home_Power的change_electricity方法為其工作,從面達(dá)到協(xié)同工作的目的。

        2.3 模板方法(Template Method)

        模板方法也叫算法模板,是指在基類(lèi)中先定義整體的算法結(jié)構(gòu),然后在子類(lèi)中實(shí)現(xiàn)具體細(xì)節(jié)的算法組合過(guò)程。模板方法在很多主流的框架中有廣泛的應(yīng)用,此模式提出是為已集成系統(tǒng)或模塊增加算法靈活性。

        模板方法是如何做到不改變算法結(jié)構(gòu)的前提下而又能靈活集成其它的算法呢?其原理如圖3所示。在程序員要對(duì)數(shù)據(jù)庫(kù)進(jìn)行編程操作時(shí),在流程上都是按照三個(gè)步驟來(lái)實(shí)現(xiàn):(1)連接上數(shù)據(jù)庫(kù);(2)對(duì)數(shù)據(jù)進(jìn)行讀寫(xiě)操作;(3)關(guān)閉數(shù)據(jù)庫(kù)。無(wú)論是何種關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng),開(kāi)頭都是建立連接,結(jié)尾則關(guān)閉空閑連接,不同的是中間環(huán)節(jié)的操作語(yǔ)法,因而針對(duì)具體關(guān)系數(shù)據(jù)庫(kù)時(shí)重載相關(guān)的算法即可。

        在如圖4所示的一個(gè)求職場(chǎng)景中,基類(lèi)Hr中包含三個(gè)抽象方法:投簡(jiǎn)歷(resume)、測(cè)試(quize)、面談(chat),及一個(gè)實(shí)體方法:求職(applyJob),此方法對(duì)面試流程進(jìn)行了算法定義,如先resume、再quize、最后chat;求職者類(lèi)LiQin與HeJia繼承Hr類(lèi),并實(shí)現(xiàn)基類(lèi)的抽象方法,即在子類(lèi)具體實(shí)現(xiàn)各個(gè)面試環(huán)節(jié)的過(guò)程,每個(gè)求職者主體面試流程是一致的,但具體細(xì)節(jié)卻是不一致,因?yàn)槊嬖嚨膷徫?、資歷等因素不一樣的原因。以上算法準(zhǔn)備好就可以開(kāi)始進(jìn)行一場(chǎng)求職面試(Interview),Interview對(duì)象直接通過(guò)求職者類(lèi)(LiQin、HeJia)調(diào)用Hr類(lèi)的applyJob方法即可實(shí)現(xiàn)求職過(guò)程。

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

        設(shè)計(jì)模式是實(shí)踐的抽象集成,是一套完整、成熟的思想理論,其最終目標(biāo)是要達(dá)到軟件復(fù)用。本文從理論方面舉例論證了設(shè)計(jì)模式的思想精華,同時(shí)從應(yīng)用方面論述了其使用場(chǎng)景,如何把理論思想與融合在系統(tǒng)架構(gòu)中是本文下一步的研究方向。

        參考文獻(xiàn):

        [1]郭榮.淺談軟件設(shè)計(jì)模式中的設(shè)計(jì)原則[J].數(shù)碼世界,2015(11):5-6.

        [2]范偉.軟件設(shè)計(jì)模式研究及應(yīng)用[J].山東工業(yè)技術(shù),2015(20):189-189.

        [3]溫立輝.Java EE編程技術(shù)[M].北京:北京理工大學(xué)出版社,2016:196-216.

        [4]劉啟明.軟件設(shè)計(jì)模式應(yīng)用研究[J].電子技術(shù)與軟件工程,2015(9):68.

        [5]王飛.簡(jiǎn)述軟件設(shè)計(jì)模式及其使用[J].電子世界,2014(17):82.

        av一区二区在线网站| 纯肉无遮挡H肉动漫在线观看国产| 国产一区二区欧美丝袜| 黄页免费人成网址大全| 日韩中文字幕有码午夜美女| 国产白袜脚足j棉袜在线观看| 成年男女免费视频网站| 欧美在线Aⅴ性色| 国产黄色三级一区二区三区四区| 中文字幕人妻无码视频| 成人做爰69片免费看网站| 在线看亚洲十八禁网站| 男人天堂插插综合搜索| 国产a∨天天免费观看美女| 中文字幕亚洲情99在线| 亚洲国产欧美另类va在线观看 | 亚洲六月丁香色婷婷综合久久| 久久久久亚洲精品男人的天堂| 精品人妻少妇一区二区三区不卡 | 黑人巨茎大战欧美白妇| 任你躁欧美一级在线精品免费| 青青草精品在线免费观看| 激情内射亚洲一区二区三区| 精品无码中文视频在线观看| 韩国日本亚洲精品视频 | 国产亚洲一区二区三区综合片| 最近中文字幕大全在线电影视频| 欧美在线成人午夜网站| 三级日本午夜在线观看| 日本三级香港三级人妇99| 免费无码毛片一区二区三区a片| 亚洲欧美日韩精品久久亚洲区色播| 久久一区二区视频在线观看| 日韩日韩日韩日韩日韩| 乱中年女人伦av| 国产三级自拍视频在线| 亚洲国产精品一区二区毛片| 88久久精品无码一区二区毛片| 欧美精品久久久久久三级| 在线日本国产成人免费精品| 国产人妻精品无码av在线|