軟件體系架構在工做中的總結

     軟件系統架構風格的知識,其中介紹了五種主要的架構風格,分別是:數據流風格,倉庫風格,調用、返回風格,構件風格和虛擬機風格。由於平時一直是CODING,沒有真正花時間來學習架構相關的知識。其實,在平時的工做中,咱們已是有意或者無心中應用到了上面的一些架構風格,只是沒有去理論化和系統化。即便之前作過的一些系統雖小,但其思想,或多或少也體現了一些架構上的風格。設計模式

 

(一)數據流風格之過濾器/鏈接器風格架構

  之前搞過一個檢索的系統,功能大概是根據查詢的關鍵詞,在SHARE POINT索到相關文件的二進制流,而後把二進制流反序列轉換爲對應的文件,最後經過PDF轉化處理,統一轉化爲PDF的文件格式呈現出來,若是考慮到查詢時的分詞,圖示能夠以下: 

1)構件:方框部分:有一個輸入的數據流和輸出與的數據流,分詞,檢索,反序列和轉PDF,分別對輸入的數據流進行運算和轉化。分詞構件的輸入數據爲關鍵詞,輸出分詞後的關鍵詞。檢索構件的輸入數據爲分詞後的關鍵詞,輸出二進制流。反序列構件的輸入數據爲二進制流,輸出爲對應的文件。轉PDF構件的輸入數據爲文件,輸出爲PDF。函數

2)鏈接器:箭頭部分,鏈接各個構件。學習

3)採用這個架構,有利於將問題域的分解,並且也有利於各個構件的替換,和系統的升級。設計

 

                             (二)構件風格之事件驅動風格(或隱式事件調用風格)對象

 之前搞過一個監控系統,功能是對儀器採集出來的數據進行實時監控(串口通訊),若是數據超標,則實時報警,從設計模式來看,典型的觀察者模式,在系統架構風格里面,應該是事件驅動比較合適了,在這個系統中,數據採集構件公佈了報警事件,其餘但願得到報警消息構件的過程在這個事件上註冊,一旦檢測數據超標,那麼數據採集構件統一調用註冊在報警事件上的各個過程,事件

圖示以下:
 
   1)構件:對象或者過程,細分爲:過程或者函數,和事件。
   2)鏈接件:事件-過程綁定。
   3)採用這種架構,將事件的發佈者和訂閱者解耦,有利於事件訂閱者的擴充。
   4)在.NET裏,主要用委託,數據採集是事件源,公佈報警事件。 
                                    
                                    (三)調用,返回之分層風格
            這種風格的應用多得那裏去了,典型的WEB三層就是這種架構了,用的太多了,分別是:WEB,BLL,DAL.以前一直不明白BLL層,以爲它無關緊要,其實不是這樣的,這層,一來,做爲WEB和DAL之間的橋樑,當DAL發生變化時,BLL能夠爲WEB層提供透明的「服務」。二來,能夠放一些業務上的判斷。虛擬機

相關文章
相關標籤/搜索