<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>

          說說軟件為什么要分層?

          共 1067字,需瀏覽 3分鐘

           ·

          2020-09-06 06:49

          點擊上方小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂

          重磅干貨,第一時間送達(dá)

          來源:SegmentFault 思否社區(qū)

          作者:Jason

          轉(zhuǎn)載:最碼農(nóng)



          背景分析


          在大型軟件系統(tǒng)設(shè)計時,業(yè)務(wù)一般會相對復(fù)雜,假如所有業(yè)務(wù)實現(xiàn)的代碼都糾纏在一起,會出現(xiàn)邏輯不清晰、可讀性差,維護(hù)困難,改動一處就牽一發(fā)而動全身等問題。為了更好解決這個問題就有了我們現(xiàn)在常說的分層架構(gòu)設(shè)計。




          軟件分層設(shè)計


          分層設(shè)計的本質(zhì)其實就是將復(fù)雜問題簡單化,首先基于單一職責(zé)原則(SRP-Single responsibility principle)讓每個對象各司其職,各盡所能。然后再基于“高內(nèi)聚,低耦合”的設(shè)計思想實現(xiàn)相關(guān)層對象之間的交互。這樣可以更好提高程序的可維護(hù)性和可擴(kuò)展性,例如生活中的樓宇設(shè)計,生日蛋糕設(shè)計,企業(yè)的組織架構(gòu)設(shè)計等。




          通訊領(lǐng)域的OSI參考模型


          在計算機通訊領(lǐng)域還有典型的OSI參考模型(Open System Interconnection Reference Model),TCP/IP參考模型等,如圖所示:



          其中,TCP/IP參考模型是OSI參考模型的一種網(wǎng)絡(luò)簡化通訊模型,這里不對每一層進(jìn)行介紹,具體有關(guān)OSI和TCP/IP的知識請自行進(jìn)行查閱。




          互聯(lián)網(wǎng)領(lǐng)域的分層架構(gòu)


          基于Java的互聯(lián)網(wǎng)架構(gòu),在進(jìn)行分層設(shè)計時,首先要對整體的系統(tǒng)分層架構(gòu)有一個基本認(rèn)識,如圖所示:



          在上圖中,很多公司會根據(jù)雇員的技能特長進(jìn)行相關(guān)分工,例如有運維工程師,中間件平臺開發(fā)工程師,產(chǎn)品開發(fā)工程師,測試工程師等。我們很多初級的java程序員主要從事的是產(chǎn)品開發(fā)或者是應(yīng)用軟件(例如客戶關(guān)系管理系統(tǒng),分銷管理系統(tǒng),配送管理系統(tǒng),支付系統(tǒng)等)開發(fā),而在應(yīng)用軟件開發(fā)時,我們一般也要進(jìn)行分層設(shè)計,例如典型的MVC分層設(shè)計,我們可以參考阿里巴巴開發(fā)手冊中給出分層設(shè)計模型,如圖所示:



          其中,在上圖中的箭頭表示一種直接依賴關(guān)系,開放接口層可以依賴于 Web 層,也可以直接依賴于 Service 層,其它依此類推(具體每層要實現(xiàn)的邏輯可自行查閱阿里巴巴開發(fā)手冊)。




          總結(jié)(Summary)


          系統(tǒng)分層設(shè)計是一種設(shè)計思想,是讓每層對象都有一個獨立職責(zé),再讓多層對象協(xié)同(耦合)完成一個完整的功能。這樣做可以更好提高系統(tǒng)可擴(kuò)展性,但同時也會增加系統(tǒng)整體運維的難度。


          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  蜜桃久久久亚洲精品 | 亚洲色图在线观看 | 超碰在线看不卡 | 青青草原在线视频免费观看 | 色吧五月天 |