日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

大家好,我是IT售前工程師Bernie.

軟件架構模式是軟件開發的基礎,決定了軟件各個功能模塊之間的層級關系、依賴關系、通信方式,也影響著軟件的開發、調試、運維和升級方式。

本文重點講解在軟件開發中,8種常見的架構模式,歡迎閱讀。

分層模式

分層模式基本上是軟件中最常用、最普遍的模式。顧名思義,在分層架構中,一個軟件整體被分為多個層級,每一層擔負著不同的職責與角色。

通常情況下,一個軟件整體會分為3層:表示層、業務邏輯層和數據訪問層

表示層即用戶界面層,還有一部分對外提供的api、sdk接口服務。表示層直接面向用戶,跟用戶打交道,接收用戶的使用指令并將IO輸入下發到業務邏輯層;同時,將業務邏輯層的運算結果、靜態頁面、動態頁面顯示給用戶。

業務邏輯層作為表示層和數據訪問層之間的連接者,對表示層提供需要的業務邏輯,同時借助于數據訪問層獲得數據。主要提供的功能包括驗證、計算和業務規則。

數據訪問層主要負責數據的增、刪、改、查,它不包括數據庫,只是對數據的讀寫。

 

采用分層架構,各層間充分解耦,結構和任務清晰明確。同時,提高了各層的可擴展性、可維護性。也可以并行開發,迅速響應需求的變化。

但是,分層架構一定程度上降低了系統的運行效率。比如原本簡單的數據查詢在表示層就可以直接做的,分層之后就必須通過業務邏輯層才可以。多了中間層,一個層級的代碼調整,會影響到多個層級都要跟著調整,級聯的修改導致代碼修改成本增加。

 

管道-過濾器模式

一個事件可以導致一系列的步驟發生,每一個步驟執行特定的功能。管道-過濾器架構是將一個大的任務拆分成多個順序執行的子任務,子任務串行處理。

就像是生產車間的流水線一樣,原始數據在水流線上跑動,每經過一個環節就進行一次加工處理,最終變為最終的數據。

我們可以看到,每一個【管道-過濾器】就是一個功能模塊,它由輸入、業務邏輯、輸出3個部分構成。每經過一個管道-過濾器組合,數據便被處理一次。

 

管道-過濾器模式核心在于任務拆解,將復雜的任務化繁為簡,形成串行的多任務處理機制。只實際開發中,存在數據封裝的要求,因為每個【管道-過濾器】組合的輸入、輸出都是有特定格式要求的。

此外,雖然對于單個任務是串行處理的,其實【管道-過濾器】組合可以并行處理多個任務,過濾器中的任務處理是獨立的,并不依賴于其他的過濾器。

 

客戶端-服務器模式C/S

C/S架構中,客戶端作為服務的請求者和消費者,服務器作為服務的提供者,兩個部分通過網絡進行連接和交互。

C/S模式的優點是比較容易對client和server進行建模,但是會出現單點故障和性能方面的瓶頸。C/S架構的安全性比B/S高一些,適合金融業務、郵件業務和共享文檔等業務。

 

客戶端的升級也是比較復雜的事情,如果軟件需要升級,那么需要對所有的客戶端做手動升級才可以。現在有了云服務,客戶端升級可以做批量,這仍是一項耗時的工作。

 

模型-視圖-控制器模式MVC

模型-視圖-控制器模式( Model-View-Controller)又稱MVC模式。這是一種類似于分層模式的開發架構,MVC可以將用戶頁面和業務邏輯進行分離,在二者之間增加了一道控制器。

UI的顯示和業務邏輯處理要經過控制器的轉換和傳送,才可以進行交互。這樣做讓Model和View之間充分解耦,提高了整個軟件的可擴展性、復用性和靈活性。

 

我們知道,UI界面在開發中是改動最為頻繁的部分,那么通過MVC模式,就可以將UI改動對于業務的影響降低到最小。

 

事件總線模式

事件總線模式是一種基于監聽機制的工作架構,由事件、監聽器、通道和事件總線四部分組成。

首先,監聽器訂閱事件通道,與其建立綁定關系,當事件源需要觸發某個任務時會告知特定的通道。然后,與通道建立了訂閱關系的監聽器會收到消息通知,最后執行監聽器中的各項任務。

 

事件總線模式類似于廣播機制,我們可以通過添加訂閱者來增加某個事件源的響應者。這種模式在Android開發中經常會用到。比如EventBus訂閱者,它可以實現Activity、Service、Fragment、等組件間的通信。

 

微服務模式

當前,在很多大的應用軟件,比如企業OA系統,一體化計劃建設系統等,這些系統涉及到的流程特別復雜,功能超級多。如果采用基本的瀏覽器或者原生開發很難有效完成部署和升級迭代。

可以采用微服務架構,我們“化繁為簡”把某一類功能歸類,把整個系統作為一個個獨立的微服務。各個微服務之間有自己的API邊界,甚至可以采用不同的編程語言。

 

在數據庫層面可以通過API接口調用,或者用消息隊列通信。

微服務的架構使得繁雜的系統具備獨立開發、獨立部署的良好特點,特別適合龐大的企業應用軟件。

 

點對點模式

點對點模式又稱p2p模式(peer to peer),每個組件被稱為節點。節不同的節點既可以作為客戶端,向其他節點發請求。也可以作為其他節點的服務端,響應對方的請求。這種模式具有很強的健壯性和可擴展性。

同時,系統性能往往依賴于節點的數量,且節點之間是資源合作的關系。因此,服務質量、安全性方面可能得不到很好的保障。點對點模式常用于文件共享網絡類型的企業應用。

 

在點對點模式中,生產者(producer)發送一條消息到消息隊列queue,隊列中的消息只能被一個消費者接收到并處理。并且,消費者Consumer隨時處于接收消息的狀態。

 

主從模式

主從模式由master、slave兩大組件構成,master組件會將工作分配給slave組件,并根據slave組件返回的結果計算出最終結果。

主從模式中,服務的執行委托給具有不同實現的不同從服務器。該模式經常用于將主數據庫視和從數據庫,并將數據同步到從庫。

 

以上是關于軟件開發中常用的框架模式,框架模式直接決定了開發中各個功能模塊之間的依賴關系,以及數據交互方式等等。

掛一漏萬,還有一些其他的模式沒有列舉到,希望給小伙伴們帶來一些幫助。

分享到:
標簽:架構
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定