系統(tǒng)分析與設(shè)計 Lesson 13 作業(yè)

1.描述軟件架構(gòu)與框架之間的區(qū)別與聯(lián)系

  • 軟件架構(gòu)(software architecture)是一系列相關(guān)的抽象模式,用于指導(dǎo)大型軟件系統(tǒng)各個方面的設(shè)計。
  • 軟件框架(software framework)是指在一定的設(shè)計原則基礎(chǔ)上,從不同角度對組成系統(tǒng)的各部分進(jìn)行搭配和安排,形成系統(tǒng)的多個結(jié)構(gòu)而組成架構(gòu),它包括該系統(tǒng)的各個組件,組件的外部可見屬性及組件之間的相互關(guān)系。

區(qū)別:

  • 軟件架構(gòu)是一種設(shè)計,是軟件系統(tǒng)的草圖。
  • 軟件框架是一種實現(xiàn),即有限制性,又有支撐性。

聯(lián)系:
軟件框架常常會是某種軟件架構(gòu)的實現(xiàn)。

2. 以你的項目為案例

繪制三層架構(gòu)模型圖,細(xì)致到分區(qū)

image.png

從程序員角度說明三層架構(gòu)給開發(fā)者帶來的便利

  • 關(guān)系分離、高級服務(wù)與低級服務(wù)分離、特定于應(yīng)用的服務(wù)與一般性服務(wù)分離。
  • 減少耦合和依賴性、增強(qiáng)內(nèi)聚性、提高潛在的復(fù)用性并且使概念更加清晰。
  • 很容易用新的實現(xiàn)替換原來的層次實現(xiàn)。例如對sql進(jìn)行性能優(yōu)化,并不會影響其他層的代碼結(jié)構(gòu)。有利于后期維護(hù)。
  • 有利于實現(xiàn)切面編程,減輕業(yè)務(wù)的復(fù)雜程度,加快編碼效率。
  • 每個層次的定位明晰,業(yè)務(wù)處理的內(nèi)容明確。依據(jù)層次,可以劃分不同的分工。開發(fā)人員可以只關(guān)注整個結(jié)構(gòu)的其中某一層。
  • 接口定義也提供了良好的可擴(kuò)展性。例如數(shù)據(jù)庫從mysql切換到oracle,只需要通過配置來切換。
  • 接口設(shè)計需要符合對擴(kuò)展開發(fā),對修改關(guān)閉的原則,增強(qiáng)了系統(tǒng)的安全性

研究 VUE 與 Flux 狀態(tài)管理的異同

Flux將一個應(yīng)用分成四個部分。

  • View: 視圖層
  • Action(動作):視圖層發(fā)出的消息(比如mouseClick)
  • Dispatcher(派發(fā)器):用來接收Actions、執(zhí)行回調(diào)函數(shù)
  • Store(數(shù)據(jù)層):用來存放應(yīng)用的狀態(tài),一旦發(fā)生變動,就提醒Views要更新頁面
image.png

Flux 的最大特點,就是數(shù)據(jù)的"單向流動"。

  1. 用戶訪問 View
  2. View 發(fā)出用戶的 Action
  3. Dispatcher 收到 Action,要求 Store 進(jìn)行相應(yīng)的更新
  4. Store 更新后,發(fā)出一個"change"事件
  5. View 收到"change"事件后,更新頁面

上面過程中,數(shù)據(jù)總是"單向流動",任何相鄰的部分都不會發(fā)生數(shù)據(jù)的"雙向流動"。這保證了流程的清晰。

Vuex實際上是Flux的一種特化實現(xiàn),用來配合Vue本身的響應(yīng)式機(jī)制。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容