軟件架構、軟件框架、設計模式_第1頁
軟件架構、軟件框架、設計模式_第2頁
軟件架構、軟件框架、設計模式_第3頁
軟件架構、軟件框架、設計模式_第4頁
軟件架構、軟件框架、設計模式_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、-作者xxxx-日期xxxx軟件架構、軟件框架、設計模式【精品文檔】一 模式和框架介紹1、 什么是模式模式,即pattern。其實就是解決某一類問題的方法論。你把解決某類問題的方法總結歸納到理論高度,那就是模式。Alexander給出的經典定義是:每個模式都描述了一個在我們的環(huán)境中不斷出現(xiàn)的問題,然后描述了該問題的解決方案的核心。通過這種方式,你可以無數次地使用那些已有的解決方案,無需在重復相同的工作。模式有不同的領域,建筑領域有建筑模式,軟件設計領域也有設計模式。當一個領域逐漸成熟的時候,自然會出現(xiàn)很多模式。2、 什么是框架框架,即framework。其實就是某種應用的半成品,就是一組組件,

2、供你選用完成你自己的系統(tǒng)。簡單說就是使用別人搭好的舞臺,你來做表演。而且,框架一般是成熟的,不斷升級的軟件。3、 為什么要用模式因為模式是一種指導,在一個良好的指導下,有助于你完成任務,有助于你作出一個優(yōu)良的設計方案,達到事半功倍的效果。而且會得到解決問題的最佳辦法。4、 為什么要用框架因為軟件系統(tǒng)發(fā)展到今天已經很復雜了,特別是服務器端軟件,設計到的知識,內容,問題太多。在某些方面使用別人成熟的框架,就相當于讓別人幫你完成一些基礎工作,你只需要集中精力完成系統(tǒng)的業(yè)務邏輯設計。而且框架一般是成熟,穩(wěn)健的,他可以處理系統(tǒng)很多細節(jié)問題,比如,事物處理,安全性,數據流控制等問題。還有框架一般都經過很多

3、人使用,所以結構很好,所以擴展性也很好,而且它是不斷升級的,你可以直接享受別人升級代碼帶來的好處??蚣芤话闾幵诘蛯討闷脚_(如J2EE)和高層業(yè)務邏輯之間的中間層。5、 軟件為什么要分層為了實現(xiàn)“高內聚、低耦合”。把問題劃分開來各個解決,易于控制,易于延展,易于分配資源總之好處很多啦:)。6、 常見的設計模式有什么首先,你要了解的是GOF的設計模式-可復用面向對象軟件的基礎一書(這個可以說是程序員必備的了),注意:GOF不是一個人,而是指四個人。它的原意是Gangs Of Four,就是“四人幫”,就是指此書的四個作者:Erich Gamma,Richard Helm,Ralph Johnso

4、n,John Vlissides。這本書講了23種主要的模式,包括:抽象工廠、適配器、外觀模式等。還有其他的很多模式,估計有100多種。軟件設計模式太多,就我的理解簡單說一下最常見的MVC模式。MVC模式是1996年由Buschmann提出的:(1)模型(Model):就是封裝數據和所有基于對這些數據的操作。(2)視圖(View):就是封裝的是對數據顯示,即用戶界面。(3)控制器(Control):就是封裝外界作用于模型的操作和對數據流向的控制等。另外:RUP(Rational Unified Process)軟件統(tǒng)一過程,XP(Extreme Programming)極端編程,這些通常被叫做

5、“過程方法”,是一種軟件項目實施過程的方法論,它是針對軟件項目的實施過程提出的方法策略。也是另一個角度的模式。二 軟件體系結構和框架的定義軟件體系結構的英文單詞是“architecture”,Architecture的基本詞義是建筑、建筑學、建筑風格。軟件體系結構雖然根植于軟件工程,但還處于一個研究發(fā)展的階段,迄今為止還沒有一個為大家所公認的定義。設計模式中對框架的定義是框架就是一組相互協(xié)作的類,對于特定的一類軟件,框架構成了一種可重用的設計。軟件框架是項目軟件開發(fā)過程中提取特定領域軟件的共性部分形成的體系結構,不同領域的軟件項目有著不同的框架類型。框架的作用在于:由于提取了特定領域軟件的共性

6、部分,因此在此領域內新項目的開發(fā)過程中代碼不需要從頭編寫,只需要在框架的基礎上進行一些開發(fā)和調整便可滿足要求;對于開發(fā)過程而言,這樣做會提高軟件的質量,降低成本,縮短開發(fā)時間,使開發(fā)越做越輕松,效益越做越好,形成一種良性循環(huán)??蚣懿皇乾F(xiàn)成可用的應用系統(tǒng)。是一個半成品,需要后來的開發(fā)人員進行二次開發(fā),實現(xiàn)具體功能的應用系統(tǒng)??蚣懿皇恰捌脚_”,平臺概念比較模糊可以是一種操作系統(tǒng),一種應用服務器,一種數據庫軟件,一種通訊中間件等地那個,因此平臺在應用平臺主要指提供特定服務的系統(tǒng)軟件,而框架更側重了設計,開發(fā)過程,或者可以說,框架通過調用平臺提供的服務而起的作用??蚣懿皇枪ぞ甙蛘哳悗欤{用API并不

7、就是在使用框架開發(fā),緊緊使用API是,開發(fā)者完成系統(tǒng)的主題部分,并不時地調用類庫實現(xiàn)特定任務。而框架構成了通用的、具有一般性的系統(tǒng)主體部分,二次開發(fā)人員只是像做填空一樣,根據具體業(yè)務,完成特定應用系統(tǒng)中與眾不同的特殊部分。三 框架與架構之間的關系框架不是構架(即軟件體系機構)。體系結構確定了系統(tǒng)整體結構、層次劃分,不同部分之間的協(xié)作等設計考慮??蚣鼙燃軜嫺唧w。更偏重于技術涉嫌。確定框架后,軟件體系結構也隨之確定,而對于同一軟件體系結構(比如Web開發(fā)中的MVC),可以通過多種框架來實現(xiàn)。四 框架與設計模式之間的關系設計模式和框架在軟件設計中是兩個不同的研究領域。設計模式研究的是一個設計問題的

8、解決方法,一個模式可應用于不同的框架和被不同的語言所實現(xiàn);而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體雖然它們有所不同,但卻共同致力于使人們的設計可以被重用,在思想上存在著統(tǒng)一性的特點,因而設計模式的思想可以在框架設計中進行應用??蚣芎驮O計模式存在著顯著的區(qū)別,主要表現(xiàn)在二者提供的內容和致力應用的領域。(1)從應用領域上分,框架給出的是整個應用的體系結構;而設計模式則給出了單一設計問題的解決方案,并且這個方案可在不同的應用程序或者框架中進行應用。(2)從內容上分,設計模式僅是一個單純的設計,這個設計可被不同語言以不用方式來實現(xiàn);而框架則是設計和代碼的一個混合體,編程者可以用

9、各種方式對框架進行擴展,進而形成完整的不同的應用。(3)以第二條為基礎,可以得出設計模式比框架更容易移植:框架一旦設計成形,雖然還沒有構成完整的一個應用,但是以其為基礎進行應用的開發(fā)顯然要受制于框架的實現(xiàn)環(huán)境;而設計模式是與語言無關的,所以可以在更廣泛的異構環(huán)境中進行應用??傊蚣苁擒浖?,而設計模式是軟件的知識體,提升框架的設計水平。五 軟件框架介紹 Software Framework。面向某領域(包括業(yè)務領域,如ERP,和計算領域,如GUI)的、可復用的“半成品”軟件,它實現(xiàn)了該領域的共性部分,并提供一系列定義良好的可變點以保證靈活性和可擴展性??梢哉f,軟件框架是領域分析結果的軟件化,是

10、領域內最終應用系統(tǒng)的模板。 隨著軟件規(guī)模的擴大、應用的廣泛和軟件復用技術的發(fā)展,以子程序或類(Class)為單位的軟件復用有許多不足:(1)子程序庫日趨其龐大以致于使用人員難以掌握。(2)大多數類粒度很小,且其自身往往不能完成有用的功能。這一問題迫使人們在復用中將一組類(或模塊)及其交互作為一個整體來考慮,由此出現(xiàn)了軟件框架。軟件框架至少包含以下組成部分: (1) 一系列完成計算的模塊,在此稱為構件。 (2) 構件之間的關系與交互機制。 (3) 一系列可變點(也稱熱點,Hot-spots,或調整點)。 (4) 可變點的行為調整機制。開發(fā)人員通過軟件框架的行為調整機制,將領域中具體應用所特有的軟

11、件模塊綁定到該軟件框架的可變點,從而得到最終應用系統(tǒng),這一過程稱為軟件框架的例化(instantiation)。通過軟件框架的使用,開發(fā)人員可將主要精力放在應用所特有的模塊的開發(fā)上,從而大大提高了軟件生產率和質量。軟件框架的行為調整機制是指如何針對具體的應用調整該框架的可變部分、如何在可變點加入特定應用模塊所采用的方法和規(guī)則。行為調整機制可分為四種: (1) 模板參數化。軟件框架提供代碼自動生成工具,該工具根據用戶設置的參數自動生成所需的代碼。 (2) 繼承和多態(tài)。通過面向對象中的子類繼承和重載,在子類中加入新的功能或改變父類的行為。 (3) 動態(tài)綁定。在運行時刻動態(tài)綁定所需的對象服務,可通過

12、軟件模式技術實現(xiàn)。 (4) 構件替換。通過替換框架中可插拔的構件來加入業(yè)務特定的功能。不同于一般的可復用軟件制品,軟件框架的一個顯著特點是逆向控制(Inversion of Control),在復用過程中,前者需被顯式調用,控制是在應用特定的模塊中,軟件框架則不然,應用開發(fā)人員只要將應用特定的模塊綁定到框架內,框架則根據自己的交互機制自動調用該模塊,控制由框架負責。軟件框架有很多種。按其應用的范圍可分為:(1) 系統(tǒng)基礎設施框架。用于簡化系統(tǒng)級軟件的開發(fā),如操作系統(tǒng)、用戶界面、語言處理等,典型例子為MacApp, Microsofts MFC等。 (2) 中間件集成框架。用于組裝分布式應用和構

13、件,典型例子為Microsofts DCOM, JavaSofts RMI, OMGs CORBA等。(3) 企業(yè)應用框架。用于各類應用領域,如電信、制造業(yè)、金融等。按其表現(xiàn)形態(tài)可分為: (1) 白盒框架。支持白盒復用,大型的類庫或子程序庫通常均提供白盒框架來協(xié)助復用。 (2) 黑盒框架。支持黑盒復用。中間件集成框架一般為黑盒框架。構架和架構也就是通常所說的軟件體系結構(software architecture)。體系結構一般包括三個部分:(1)構件,用于描述計算。(2)連接器,用于描述構件的連接部分。(3)配置,將構件和連接器組成一個有機整體。對體系結構比較嚴謹比較認可的定義可參見軟件工程技術概論(科學出版社)。體系結構與框架(Framework)的區(qū)別與聯(lián)系如下:(1)呈現(xiàn)形式不同。體系結構的呈現(xiàn)形式是一個設計規(guī)約,而框架

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論