面向模式的軟體體繫結構(3)--管道與過濾器

來源:互聯網
上載者:User

標籤:架構   結構   設計   軟體   

看了一整晚,不甚理解管道/過濾器。常見的案例Linux命令管道是比較好理解的,但加之混亂的主動/被動的動態概念,就不太好理解了。暫先整理筆記,後面再回顧。


這是看的第2類體繫結構,不是有所收穫:大致可抽象出一些常見設計的範式

1、體繫結構現過程關鍵點:拆、定義介面/格式、合、出錯處理

2、優點關註:重用度 “考慮到一般變更的設計是優秀系統深化的一個主要助推器”


【概述】

管道和過濾器(Pipes and Filters)為 處理資料流的系統提供了一種結構。每個處理步驟封裝在一個過濾器組件中,資料通過相鄰過濾器之間的管道傳輸。重組過濾器可以建立相關係統族。
【細節】例子 -- Java語言的解析過程(詞法分析,文法分析,語義分析,中間代碼產生,中間代碼最佳化)語境 -- 處理資料流問題 -- 存在不同的輸入資料來源;想要達到未來可靈活重新排列步驟,需要提前做好規劃;不相連的處理步驟不共用資訊etc解決方案 -- 將系統任務分成幾個順序的處理步驟。結構 --1、隨後的流水線單元從過濾器中拉出輸出資料(被動過濾器)2、前面的流水線單元把新的輸入資料壓入過濾器(被動過濾器)3、最常用的,過濾器以迴圈方式工作,從流水線中拉出其輸入資料並且將其輸出資料壓入流水線(主動過濾器)
過濾器,職責:獲得輸入資料;在其輸入資料上執行1個函數;供給輸出資料管道表示過濾器之間的串連,職責:轉化資料,緩衝資料,同步主動鄰居
動態特性 -- 主動被動過濾器之區分(暫搞不懂)實現 -- 1、為把系統任務分成一系列處理階段2、定義沿每個管道傳輸的資料格式3、決定如何?每個管道串連4、設計和實現過濾器5、設計出錯處理6、建立處理流水線
已解決的例子 -- TCP/IP協議已知使用:Unix流水線任務:程式編譯、文檔建立效果 --優點:不一定需要中間檔案、過濾器交換/重組靈活性、重用、快速原型、平行處理效率不足:共用狀態資訊昂貴/不靈活、平行處理效率未必高、資料轉換額外開銷、錯誤處理

著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

面向模式的軟體體繫結構(3)--管道與過濾器

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.