<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          【軟件開發(fā)】架構(gòu)設(shè)計Structure-下篇

          共 6310字,需瀏覽 13分鐘

           ·

          2021-07-17 07:38

          Start:關(guān)注本公眾號后,可直接聯(lián)系后臺獲取排版美化的詳細(xì)文檔!

          Hints:本篇文章所編纂的資料均來自網(wǎng)絡(luò),特此感謝參與奉獻(xiàn)的有關(guān)人員。


          • 架構(gòu)風(fēng)格演化

          • 二層C/S架構(gòu)

          1二層 C/S 結(jié)構(gòu)為單一服務(wù)器且以局域網(wǎng)為中心,所以難以擴(kuò)展至大型企業(yè)廣域網(wǎng)或Internet;(使用范圍)

          2軟、硬件的組合及集成能力有限;(擴(kuò)展性)

          3服務(wù)器的負(fù)荷太重,難以管理大量的客戶機,系統(tǒng)的性能容易變壞;(性能)

          4數(shù)據(jù)安全性不好。因為客戶端程序可以直接訪問數(shù)據(jù)庫服務(wù)器,那么,在客戶端計算機上的其他程序也可想辦法訪問數(shù)據(jù)庫服務(wù)器,從而使數(shù)據(jù)庫的安全性受到威脅。(安全)

          • 三層C/S架構(gòu)

          -表現(xiàn)層(Web層)
          負(fù)責(zé)接收客戶端請求,向客戶端響應(yīng)結(jié)果,通??蛻舳耸褂?/span>http協(xié)議請求 web,web層需要接收 http請求,完成http響應(yīng)。
          表現(xiàn)層包括展示層和控制層:控制層負(fù)責(zé)接收請求,展示層負(fù)責(zé)結(jié)果的展示。
          表現(xiàn)層依賴業(yè)務(wù)層,接收到客戶端請求一般會調(diào)用業(yè)務(wù)層進(jìn)行業(yè)務(wù)處理,并將處理結(jié)果響應(yīng)給客戶端。
          表現(xiàn)層的設(shè)計一般都使用 MVC 模型。MVC 是表現(xiàn)層的設(shè)計模型,和其他層沒有關(guān)系。

          -業(yè)務(wù)層 Service層)
          它負(fù)責(zé)業(yè)務(wù)邏輯處理,和我們開發(fā)項目的需求息息相關(guān)。web層依賴業(yè)務(wù)層,但是業(yè)務(wù)層不依賴Web層。
          業(yè)務(wù)層在業(yè)務(wù)處理時可能會依賴持久層,如果要對數(shù)據(jù)持久化需要保證事務(wù)一致性。 (事務(wù)應(yīng)該放到業(yè)務(wù)層來控制)

          -持久層 dao 層)
          負(fù)責(zé)數(shù)據(jù)持久化,包括數(shù)據(jù)層即數(shù)據(jù)庫和數(shù)據(jù)訪問層,數(shù)據(jù)庫是對數(shù)據(jù)進(jìn)行持久化的載體,數(shù)據(jù)訪問層是業(yè)務(wù)層和持久層交互的接口;業(yè)務(wù)層需要通過數(shù)據(jù)訪問層將數(shù)據(jù)持久化到數(shù)據(jù)庫中。
          持久層就是和數(shù)據(jù)庫交互,對數(shù)據(jù)庫表進(jìn)行增刪改査的。

          1)允許合理地劃分三層結(jié)構(gòu)的功能,使之在邏輯上保持相對獨立性,從而使整個系統(tǒng)的邏輯結(jié)構(gòu)更為清晰,能提高系統(tǒng)和軟件的可維護(hù)性和可擴(kuò)展性。(邏輯獨立清晰, 可維護(hù)性/可擴(kuò)展性)

          2)允許更靈活有效地選用相應(yīng)的平臺和硬件系統(tǒng),使之在處理負(fù)荷能力上與處理特性上分別適應(yīng)于結(jié)構(gòu)清晰的三層;并且這些平臺和各個組成部分可以具有良好的可升級性和開放性。(可升級性/開放性)

          3)三層C/S架構(gòu)中,應(yīng)用的各層可以并行開發(fā),各層也可以選擇各自最適合的開發(fā)語言。使之能并行地而且是高效地進(jìn)行開發(fā),達(dá)到較高的性能價格比;對每一層的處理邏輯的開發(fā)和維護(hù)也會更容易些。(開發(fā)維護(hù)成本/速度/技術(shù)門檻)

          4)允許充分利用功能層有效地隔離開表示層與數(shù)據(jù)層,未授權(quán)的用戶難以繞過功能層而利用數(shù)據(jù)庫工具或黑客手段去非法地訪問數(shù)據(jù)層,這就為嚴(yán)格的安全管理奠定了堅實的基礎(chǔ);整個系統(tǒng)的管理層次也更加合理和可控制。(安全)

          •  三層B/S架構(gòu)

          -用戶在使用系統(tǒng)時,僅僅需要一個瀏覽器就可運行全部的模塊,真正達(dá)到了“零客戶端”的功能,很容易在運行時自動升級。(客戶端)

          -基于B/S架構(gòu)的軟件,系統(tǒng)安裝、修改和維護(hù)全在服務(wù)器端解決。(服務(wù)端)

          -B/S架構(gòu)還提供了異種機、異種網(wǎng)、異種應(yīng)用服務(wù)的聯(lián)機、聯(lián)網(wǎng)、統(tǒng)一服務(wù)的最現(xiàn)實的開放性基礎(chǔ)。(開放性)

          缺點:

          B/S架構(gòu)缺乏對動態(tài)頁面的支持能力,沒有集成有效的數(shù)據(jù)庫處理功能。

          B/S架構(gòu)的系統(tǒng)擴(kuò)展能力差,安全性難以控制。

          采用B/S架構(gòu)的應(yīng)用系統(tǒng),在數(shù)據(jù)查詢等響應(yīng)速度上,要遠(yuǎn)遠(yuǎn)地低于C/S架構(gòu)。(性能)

          B/S架構(gòu)的數(shù)據(jù)提交一般以頁面為單位,數(shù)據(jù)的動態(tài)交互性不強,不利于OLTP應(yīng)用.

          • MVC架構(gòu)風(fēng)格

          MVC 全名是 Model ViewController,是模型(model)-視圖(view)-控制器(controller)的縮寫,它是分層架構(gòu)風(fēng)格的一種。主要解決 將與 UI 相關(guān)的邏輯都定義在針對視圖的相關(guān)元素的事件上 的問題。

          MVC 中各個部分的分工與協(xié)作:

          -Model 是對應(yīng)用狀態(tài)和業(yè)務(wù)功能的封裝,我們可以將它理解為同時包含數(shù)據(jù)和行為的領(lǐng)域模型。Model 接受 Controller 的請求并完成相應(yīng)的業(yè)務(wù)處理,在狀態(tài)改變的時候向 View 發(fā)出相應(yīng)的通知。同時包含數(shù)據(jù)和行為的領(lǐng)域模型

          -View 實現(xiàn)可視化界面的呈現(xiàn)并捕捉最終用戶的交互操作(例如鼠標(biāo)和鍵盤的操作)。

          -View 捕獲到用戶交互操作后會直接轉(zhuǎn)發(fā)給 Controller,后者完成相應(yīng)的 UI 邏輯。如果需要涉及業(yè)務(wù)功能的調(diào)用,Controller 會直接調(diào)用 Model。在完成 UI 處理后,Controller 會根據(jù)需要控制原 View 或者創(chuàng)建新的 View 對用戶交互操作予以響應(yīng)。

          • MVP 的架構(gòu)風(fēng)格

          MVP 是從經(jīng)典的模式 MVC 演變而來,它們的基本思想有相通的地方:Controller/Presenter 負(fù)責(zé)邏輯的處理,Model 提供數(shù)據(jù),View 負(fù)責(zé)顯示。

          當(dāng)然 MVP 與 MVC 也有一些顯著的區(qū)別,MVC 模式中元素之間“混亂”的交互主要體現(xiàn)在允許 View 和 Model 直接進(jìn)行“交流”,這在 MVP 模式中是不允許的。在 MVP 中 View 并不直接使用 Model,它們之間的通信是通過 Presenter (MVC 中的 Controller)來進(jìn)行的,所有的交互都發(fā)生在 Presenter 內(nèi)部,而在 MVC 中 View 會直接從 Model 中讀取數(shù)據(jù)而不是通過 Controller,從而避免了 View 和 Model 之間的耦合。

          因為 View 層和 Model 層都需經(jīng)過 Presenter 層,致使 Presenter 層比較復(fù)雜,維護(hù)起來會有一定的問題。而且因為沒有綁定數(shù)據(jù),所有數(shù)據(jù)都需要 Presenter 層進(jìn)行“手動同步”,代碼量比較大,雖然比 MVC 模型好很多,但也是有比較多的冗余部分。

          • MVVM架構(gòu)

          View 層和 Model 層之間數(shù)據(jù)的傳遞也經(jīng)過了 ViewModel 層, ViewModel 層并沒有對其進(jìn)行“手動綁定”,不僅使速度有了一定的提高,代碼量也減少很多,相比于 MVC 和 MVP,MVVM 有了長足的進(jìn)步。

           MVVM 的框架圖與 MVP 的框架圖相似,確實如此,兩者都是從 View 層開始觸發(fā)用戶的操作,之后經(jīng)過第三層,最后到達(dá) Model 層。但是關(guān)鍵問題是這第三層的內(nèi)容, ViewModel 層雙向綁定了 View 層和 Model 層,因此,隨著 View 層的數(shù)據(jù)變化,系統(tǒng)會自動修改 Model 層的數(shù)據(jù),反之同理。而 Presenter 層是采用手動寫方法來調(diào)用或者修改 View 層和 Model 層。

          Web應(yīng)用中的MVVM模型:

          • 富互聯(lián)網(wǎng)應(yīng)用(RIA)

           

          • 架構(gòu)風(fēng)格與設(shè)計模式

          -架構(gòu)風(fēng)格往往是從全局的角度來考慮問題,他是一種獨立于實際問題的通用組織結(jié)構(gòu)。例如,常用的B/S架構(gòu),在很多不同的系統(tǒng)中,都有應(yīng)用。

          -而設(shè)計模式著眼于解決某一特定的局部問題,是一種局部解決方案的應(yīng)用。例如,在很多的軟件系統(tǒng)中,創(chuàng)建對象時,希望有統(tǒng)一的機制對這些對象的創(chuàng)建進(jìn)行管理,所以出現(xiàn)了工廠模式,創(chuàng)建者模式等設(shè)計模式。比如java內(nèi)存垃圾的回收機制也做成了一種設(shè)計模式。

           

          • 質(zhì)量屬性分析

          • 質(zhì)量屬性類別:

          1)、系統(tǒng)的質(zhì)量屬性。(可用性、可修改性、性能、安全性、可測試性和易用性)

          2)、受架構(gòu)影響的商業(yè)屬性。(上市時間、成本和收益、所希望的系統(tǒng)生命期的長短、目標(biāo)市場、推出計劃、與老系統(tǒng)的集成)

          3)、與架構(gòu)本身相關(guān)的一些質(zhì)量屬性。(概念完整性、正確性與完整性、可構(gòu)建性)

          • 質(zhì)量屬性列表:


          • 參考資料:

          軟件體系架構(gòu)閱讀筆記(九) - 算法網(wǎng) (itpcb.com)
          https://itpcb.com/a/701414
          軟件架構(gòu)概覽-架構(gòu)-火龍果軟件工程 (uml.org.cn)
          http://www.uml.org.cn/zjjs/zjjs-bk.asp
          常用軟件架構(gòu)模式_軟件架構(gòu)模式的處理過程_經(jīng)典軟件架構(gòu)模式_常用16味藥膳藥材_新聞頭條 (xinwentoutiao.net)
          https://www.xinwentoutiao.net/jishu/20200502/1276760.html
          MVC、MVP、MVVM的區(qū)別和聯(lián)系(精講版) (biancheng.net)
          http://c.biancheng.net/view/7743.html#:~:text=MVC%E3%80%81MVP%E3%80%81MVVM%20%E4%B8%89%E8%80%85%E7%9A%84%E4%B8%BB%E8%A6%81%E5%8C%BA%E5%88%AB%E5%B0%B1%E5%9C%A8%E4%BA%8E%E9%99%A4%20View%20%E5%B1%82%E5%92%8C%20Model%20%E5%B1%82%E4%B9%8B%E5%A4%96%E7%9A%84%E7%AC%AC%E4%B8%89%E5%B1%82%EF%BC%8C%E8%BF%99%E4%B8%80%E5%B1%82%E7%9A%84%E4%B8%8D%E5%90%8C%E4%BD%BF%E5%BE%97,MV%20%E7%B3%BB%E5%88%97%E6%A1%86%E6%9E%B6%E5%8C%BA%E5%88%86%E5%BC%80%E6%9D%A5%E3%80%82%20%E5%85%B6%E5%AE%9E%E5%BE%88%E9%9A%BE%E8%AF%B4%E5%87%BA%20MVC%E3%80%81MVP%E3%80%81MVVM%20%E5%93%AA%E4%B8%80%E4%B8%AA%E6%9B%B4%E5%A5%BD%EF%BC%8C%E4%BB%8E%E8%A1%A8%E9%9D%A2%E4%B8%8A%E7%9C%8B%EF%BC%8C%E6%98%BE%E7%84%B6%E6%98%AF%20MVVM%20%E6%9C%80%E5%A5%BD%EF%BC%8C%E4%BD%BF%E7%94%A8%E8%B5%B7%E6%9D%A5%E6%9B%B4%E6%96%B9%E4%BE%BF%EF%BC%8C%E4%BB%A3%E7%A0%81%E7%9B%B8%E5%AF%B9%E4%B9%9F%E8%BE%83%E5%B0%91%E3%80%82
          Android安卓架構(gòu)MVC、MVP、MVVM之間的區(qū)別和聯(lián)系(圖解+案例+源碼)_快樂李同學(xué)的博客-CSDN博客_android mvc mvp mvvm區(qū)別
          https://blog.csdn.net/wq6ylg08/article/details/105023009
          模式淺談_風(fēng)一樣的少年-CSDN博客_mvc mvp mvvm
          https://blog.csdn.net/qq_42127861/article/details/105876263
          MVC、MVP、MVVM特點及三者的區(qū)別_Ancecis的博客-CSDN博客
          https://blog.csdn.net/Ancecis/article/details/104204326
          MVC,MVP 和 MVVM 的圖示 - 阮一峰的網(wǎng)絡(luò)日志 (ruanyifeng.com)
          https://www.ruanyifeng.com/blog/2015/02/mvcmvp_mvvm.html
          MVC、MVP、MVVM模式的概念與區(qū)別 - 知乎 (zhihu.com)
          https://zhuanlan.zhihu.com/p/377518336
          MVC、MVP、MVVM模式的概念與區(qū)別 - 簡書 (jianshu.com)
          https://www.jianshu.com/p/ff6de219f988
          簡單介紹 10 個常見的軟件架構(gòu) - 知乎 (zhihu.com)
          https://zhuanlan.zhihu.com/p/41395345#:~:text=%E7%AE%80%E5%8D%95%E4%BB%8B%E7%BB%8D%2010%20%E4%B8%AA%E5%B8%B8%E8%A7%81%E7%9A%84%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%201%20%E5%88%86%E5%B1%82%E6%A8%A1%E5%BC%8F%20%28Layered%20pattern%29%202,%E6%A8%A1%E5%BC%8F%EF%BC%88Model-vi%20...%209%20%E9%BB%91%E6%9D%BF%E6%A8%A1%E5%BC%8F%EF%BC%88Blackboard%20pattern%EF%BC%89%2010%20%E8%A7%A3%E6%9E%90%E5%99%A8%E6%A8%A1%E5%BC%8F%EF%BC%88Interpreter%20pattern%EF%BC%89
          五種常見軟件架構(gòu) - 時間朋友 - 博客園 (cnblogs.com)
          https://www.cnblogs.com/doit8791/p/9343826.html
          淺析常用軟件架構(gòu)的三種架構(gòu)模型 - 云+社區(qū) - 騰訊云 (tencent.com)
          https://cloud.tencent.com/developer/article/1116141
          十大常用軟件架構(gòu)模式簡介 - 簡書 (jianshu.com)
          https://www.jianshu.com/p/128ec31551b7
          四大常用的軟件架構(gòu),來看看你們公司用哪種?

          -程序人生-Web開發(fā)者網(wǎng) (webkfz.com)
          http://webkfz.com/cxrs/eass.html
          最常用的4 大軟件架構(gòu) - 知乎 (zhihu.com)
          https://zhuanlan.zhihu.com/p/343457113
          軟件架構(gòu)入門 - 阮一峰的網(wǎng)絡(luò)日志 (ruanyifeng.com)
          https://www.ruanyifeng.com/blog/2016/09/software-architecture.html
          軟件架構(gòu)設(shè)計-軟件架構(gòu)風(fēng)格、分層架構(gòu) - 驚覺 (leheavengame.com)
          http://leheavengame.com/article/60dbbb53049f556e1a231ffe
          《軟件架構(gòu)設(shè)計》學(xué)習(xí)筆記 (uml.org.cn)
          http://uml.org.cn/zjjs/201307151.asp
          邏輯架構(gòu)和物理架構(gòu)在架構(gòu)設(shè)計中的應(yīng)用 (uml.org.cn)
          http://www.uml.org.cn/zjjs/200906045.asp
          軟件架構(gòu)設(shè)計 (uml.org.cn)
          http://www.uml.org.cn/zjjs/201107193.asp
          《軟件架構(gòu)》總覽 | 并發(fā)編程網(wǎng) – ifeve.com
          http://ifeve.com/%E3%80%8A%E8%BD%AF%E4%BB%B6%E6%9E%B6%E6%9E%84%E3%80%8B%E6%80%BB%E8%A7%88/

          公眾號二維碼

          End:如果有興趣了解金融量化交易和其他數(shù)據(jù)分析的實用技術(shù),歡迎關(guān)注本公眾號

          瀏覽 85
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲一级无码毛片 | 欧美毛片一区二区三区有限公司 | 日韩AV成人 | 嗯啊啊网站 | 四川少妇无码 |