日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

软件架构的数据流总结(三)

發(fā)布時(shí)間:2024/4/15 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 软件架构的数据流总结(三) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

14. Interpreter / virtual machine (解釋器/虛擬機(jī))


典型樣例:Java 虛擬機(jī),Rule-based systems,腳本語言(JavaScript)

原理:Program or Script加載到解釋器,創(chuàng)立Program和環(huán)境的鏈接。解釋器從程序中讀取指令并處理,從而影響Environment。

問題:比直接執(zhí)行要慢許多;需要定制debugger;需要開發(fā)和實(shí)現(xiàn)特征豐富的編程語言。其實(shí)像python,Matlab,java都應(yīng)該屬于這種類型。

15. Hub-And-Spoke


應(yīng)用:用來連接不兼容的遺留系統(tǒng)(legacy systems);

工作機(jī)制:spoke在hub上注冊和取消注冊。spoke X 發(fā)送消息給spoke Y時(shí),先通過hub將X language轉(zhuǎn)變?yōu)橹虚g表示,然后再轉(zhuǎn)變?yōu)閅 language,最后將消息發(fā)送給spoke Y。

問題:More complex (debugging);Single Point of failure (hub)

16. Event Bus or Message Bus


典型樣例:Process monitoring;Trading systems;Software development environments。

應(yīng)用:當(dāng)應(yīng)用(app)可以被分解為功能獨(dú)立的且能通過簡單的消息通訊的模塊時(shí),可以選用這種架構(gòu)。

工作機(jī)制:這些模塊能夠在run-time加入和移出。當(dāng)一個(gè)模塊希望與其他模塊通訊時(shí),就在Event Bus上放一個(gè)消息,然后Event Bus負(fù)責(zé)傳遞消息給收件人。有幾種通訊可能發(fā)生在Event Bus上,1)發(fā)布-訂閱(publish-subscribe):當(dāng)一個(gè)模塊發(fā)布消息到Bus上,所有訂閱的Module都會收到;2)廣播(broadcast):消息將傳遞給所有module;3)點(diǎn)對點(diǎn)(point-to-point):兩兩之間的通訊。這種機(jī)制跟各種總線通訊有點(diǎn)相似了,比如RS422、RS485等通訊協(xié)議,或者是網(wǎng)絡(luò)通訊中的一些協(xié)議相關(guān)。

問題:當(dāng)模塊之間共享大量的數(shù)據(jù)時(shí),再通過bus來pump數(shù)據(jù)可就不明智了。還要注意同步問題。

17. Structural Model (Synchronizer,同步器)


應(yīng)用:飛行模擬器。這種pattern用在復(fù)雜的time-critical系統(tǒng)。當(dāng)你需要聯(lián)合定期或不定期的控制流時(shí)。當(dāng)你的模塊需要定期升級或者通過彼此之間發(fā)送消息使得狀態(tài)改變的情況下。

工作機(jī)制:這種模式的核心是一個(gè)控制環(huán):以固定的時(shí)間周期運(yùn)行,被叫做時(shí)間間隔或時(shí)間幀。pattern包括一個(gè)應(yīng)用特定部分,叫做應(yīng)用級,一個(gè)一般的部分,叫做執(zhí)行級。


18. Ports-And-Adapters / Hexagonal Architecture


這種結(jié)構(gòu)的主要目的是將應(yīng)用的核心邏輯與它使用的服務(wù)去耦合,允許不同的服務(wù)插入(plugged in),也允許應(yīng)用在沒有那些服務(wù)的時(shí)候照樣執(zhí)行。

core logic或者business logic是應(yīng)用程序的核心;而services是不必要的,在不改變應(yīng)用程序目的的情況下,是可以替代的。比如:數(shù)據(jù)庫訪問和其他類型的存儲,用戶接口元件,e-mail和別的通訊元件,硬件設(shè)備等。

優(yōu)勢:core logic能夠獨(dú)立于服務(wù)進(jìn)行測試;很容用其他更適合需求改變的服務(wù)代替。

The primary adapter calls the API functions of the core logic。

這種應(yīng)用可以被不同類型的用戶使用,每個(gè)用戶都可以創(chuàng)建他們自己的應(yīng)用變體,通過插入定制的adapters。


完結(jié)


最后再總結(jié)一下:對于軟件architecture,每個(gè)人都有每個(gè)人的設(shè)計(jì),上面給總結(jié)的是比較鮮明的18種基于數(shù)據(jù)流的框架pattern,有些雖然不用自己去設(shè)計(jì),但是在理解某些開發(fā)方式的時(shí)候是非常有益處的:比如MVC組件模型(或者PAC模型),很明顯基本上GUI界面的設(shè)計(jì)都是基于這種模式,理解了這種模式,再進(jìn)行界面開發(fā)時(shí)就有一種鳥瞰的感覺;比如virtual machine;比如Master-Slave等。

有些可能比較常見,比如MVC、PAC、Pipe and Filter,Master-Slave,layered system,client-server,state machine等,有些比較專用:structural model等。

對于常見的模型,能有一個(gè)比較好的深入理解,對于閱讀程序或者是開發(fā)大型程序都是極有幫助的。

希望總結(jié)能對后續(xù)的學(xué)習(xí)有一定的幫助!

2015-7-8 14:16 星期三

轉(zhuǎn)載于:https://www.cnblogs.com/huty/p/8519346.html

總結(jié)

以上是生活随笔為你收集整理的软件架构的数据流总结(三)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。