軟件設計模式研究

前言:尋找寫作靈感?中文期刊網用心挑選的軟件設計模式研究,希望能為您的閱讀和創作帶來靈感,歡迎大家閱讀并分享。

軟件設計模式研究

摘要:針對問題場景中如何選擇與之相匹配的模式方案,討論了軟件工程中的模式思想,同時分析了特定場合中如何尋找、套用合適的問題解決方案,最后深入闡述幾種常用模式方案的原理以及語法結構。

關鍵詞:設計模型;思想復用;門面;適配器;模板方法

1概述

模式方案也稱之為設計模式,是編程界的重要基石,其本質上是一套問題的解決方案,體現了思想級別的成果復用,在軟件開發生命周期不斷縮短,軟件產品通過用性、擴展性、復用性要求越來越高的今天,其日益受到人們的重視。

2軟件設計模式的類型

設計模式最早是在1990年由ErichGamma等程序員提出,靈感源自從建筑設計領域,進而引入到軟件工程開發中來。在傳統的編程領域,模式方案眾多,多達二三十套,每一種都包含特定的思想與智慧,使復雜的場景簡單化。以下對幾種常用的設計模式作深入全面的分析。

2.1門面模式(Facade)

門面模式也叫層面模式,是指不同的模塊或系統間進行交互時,通過接口的形式進行,而不是直接交互。門面模式使得系統間通信變得標準、統一,極大地降低了系統的耦合,非常有利系統的移植、擴充、維護、復用等。門面模式的提出是為了解決系統對外通過過程中,耦合性過高的問題??紤]這樣一個問題,有兩個開發小組:WEB前端開發小組、應用系統后臺開發小組,每個小組有十個程序員,若兩個小組的交互采用組員直接通信,兩個組間將會產生100種交互方式,非常不利于對項目經理(PM)對兩個開發小組的管理。如果在兩個開發小組之間各指定某個人作為組長,兩小組之間的通信通過組長來做門面進行交互,那么兩個小組間只有一種交互方式,就能極大的降低了PM對項目組管理的難度。門面模式結構如圖1所示,在一個商店模塊中有Drink(飲料)、Food(食品)、Toy(玩具)等商品,同時有一個Saleman(店員)類作為商店模塊的門面,當外部的Customer(顧客)類要購買商店中商品時,則通過店員門面類提供的sale方法,來統一操作相關業務行為,顧客類不能直接操作商店模塊中的所有組件(類)。

2.2適配器模式(Adapter)

適配器模式是指形式不兼容的組件通過中間類的整合,使其能為第三方接口服務。適配器模式的提出是為了解決程序設計過程中接口不兼容問題,提升模塊的協作效應,同時增強了軟件的復用能力。適配器模式如何讓不兼容接口間一起協同工作呢?考慮這樣的一個場景,來自A國家的商人要尋購買某種商品,來自B國家的商人則要出售該種商品,但兩個商人因為語言之間的障礙無法溝通,生意無法達成;這時引入一個第三方翻譯作為溝通的中介,在這個翻譯的幫助下,最終達成交易,那么這個中介翻譯的作用一個語言的適配器角色適配器模式的組成結構如圖2所示,有一個手機(Mo-bile)類使用的是電池直流電源供電,現在有一個家用電源(Home_Power)只能提供交流電源,Mobile類與Home_Pow-er類不兼容,不能直接協協同工作,現在通過電源配置器類(Electricity_Adapter)的轉換來使他們能夠工作起來(交流電轉換為直流電)。首先,Electricity_Adapter繼承了Mobile類并覆蓋unchange_electricity方法,并在此方法中調用Home_Power類的change_electricity方法,因而Elec-tricity_Adapter就成了兩者間的轉換類,當用戶(User)通過Mobile來調用unchange_electricity方法時,通過Electrici-ty_Adapter的轉換就能讓Home_Power的change_electricity方法為其工作,從面達到協同工作的目的。

2.3模板方法(TemplateMethod)

模板方法也叫算法模板,是指在基類中先定義整體的算法結構,然后在子類中實現具體細節的算法組合過程。模板方法在很多主流的框架中有廣泛的應用,此模式提出是為已集成系統或模塊增加算法靈活性。模板方法是如何做到不改變算法結構的前提下而又能靈活集成其它的算法呢?其原理如圖3所示。在程序員要對數據庫進行編程操作時,在流程上都是按照三個步驟來實現:(1)連接上數據庫;(2)對數據進行讀寫操作;(3)關閉數據庫。無論是何種關系數據庫管理系統,開頭都是建立連接,結尾則關閉空閑連接,不同的是中間環節的操作語法,因而針對具體關系數據庫時重載相關的算法即可。在如圖4所示的一個求職場景中,基類Hr中包含三個抽象方法:投簡歷(resume)、測試(quize)、面談(chat),及一個實體方法:求職(applyJob),此方法對面試流程進行了算法定義,如先resume、再quize、最后chat;求職者類LiQin與HeJia繼承Hr類,并實現基類的抽象方法,即在子類具體實現各個面試環節的過程,每個求職者主體面試流程是一致的,但具體細節卻是不一致,因為面試的崗位、資歷等因素不一樣的原因。以上算法準備好就可以開始進行一場求職面試(Interview),Interview對象直接通過求職者類(LiQin、HeJia)調用Hr類的applyJob方法即可實現求職過程。

3結束語

設計模式是實踐的抽象集成,是一套完整、成熟的思想理論,其最終目標是要達到軟件復用。本文從理論方面舉例論證了設計模式的思想精華,同時從應用方面論述了其使用場景,如何把理論思想與融合在系統架構中是本文下一步的研究方向。

參考文獻:

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

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

[3]溫立輝.JavaEE編程技術[M].北京:北京理工大學出版社,2016:196-216.

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

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

作者:溫立輝 單位:河源職業技術學院

亚洲精品一二三区-久久