基礎(chǔ)理論知識(shí)彌補(bǔ)(一)

前幾天我們小組在討論 組件化 相關(guān)的想法,而隨著討論的加深,發(fā)現(xiàn)自己對(duì)于一些基本的理論還有一些誤區(qū),特此先彌補(bǔ)一下,本來(lái)很早就要寫好的,但前兩天看歷史小說(shuō)太入迷了,自我控制力還是有待加強(qiáng)啊....

  • 架構(gòu)
  • 框架
  • 設(shè)計(jì)模式
  • 組件化

通過(guò)下面的問(wèn)題來(lái)理解下上述的概念:

一、 架構(gòu)和框架的關(guān)系?

框架是軟件,架構(gòu)不是軟件。

  • 框架是一種特殊的軟件,它并不能提供完整無(wú)缺的解決方案,而是為你構(gòu)建解決方案提供良好的基礎(chǔ)。框架是半成品。典型地,框架是系統(tǒng)或子系統(tǒng)的半成品;框架中的服務(wù)可以被最終應(yīng)用直接調(diào)用,而框架中的擴(kuò)展點(diǎn)是供應(yīng)用開發(fā)人員定制的“可變化點(diǎn)”。

  • 軟件架構(gòu)不是軟件,而是關(guān)于軟件如何設(shè)計(jì)的重要決策。軟件架構(gòu)決策涉及到如何將軟件系統(tǒng)分解成不同的部分、各部分之間的靜態(tài)結(jié)構(gòu)關(guān)系和動(dòng)態(tài)交互關(guān)系等。
    參考引入:談框架和架構(gòu)的區(qū)別

    理解架構(gòu)和框架的關(guān)系

二、 設(shè)計(jì)模式和架構(gòu)的關(guān)系?

  • 設(shè)計(jì)模式主要是針對(duì)單一問(wèn)題的解決方法,范疇比較小。
  • 架構(gòu)是高層次的針對(duì)體系結(jié)構(gòu)的一種設(shè)計(jì)思路,范疇比較大。
    可以這么說(shuō),一個(gè)架構(gòu)中可能會(huì)出現(xiàn)多個(gè)設(shè)計(jì)模式來(lái)解決多種架構(gòu)中的問(wèn)題。
常見的設(shè)計(jì)模式

參考引入:圖說(shuō)設(shè)計(jì)模式

三、 設(shè)計(jì)模式和框架的關(guān)系?

  • 從應(yīng)用領(lǐng)域上分,框架給出的是整個(gè)應(yīng)用的體系結(jié)構(gòu);而設(shè)計(jì)模式則給出了單一設(shè)計(jì)問(wèn)題的解決方案,并且這個(gè)方案可在不同的應(yīng)用程序或者框架中進(jìn)行應(yīng)用。
  • 從內(nèi)容上分,設(shè)計(jì)模式僅是一個(gè)單純的設(shè)計(jì),這個(gè)設(shè)計(jì)可被不同語(yǔ)言以不用方式來(lái)實(shí)現(xiàn);而框架則是設(shè)計(jì)和代碼的一個(gè)混合體,編程者可以用各種方式對(duì)框架進(jìn)行擴(kuò)展,進(jìn)而形成完整的不同的應(yīng)用。
  • 框架一旦設(shè)計(jì)成形,雖然還沒(méi)有構(gòu)成完整的一個(gè)應(yīng)用,但是以其為基礎(chǔ)進(jìn)行應(yīng)用的開發(fā)顯然要受制于框架的實(shí)現(xiàn)環(huán)境;而設(shè)計(jì)模式是與語(yǔ)言無(wú)關(guān)的,所以可以在更廣泛的異構(gòu)環(huán)境中進(jìn)行應(yīng)用。
    參考引入: 架構(gòu)、框架、設(shè)計(jì)模式之間的關(guān)系簡(jiǎn)述
不經(jīng)意間找到的說(shuō)明其關(guān)系的

框架通常是代碼重用,而設(shè)計(jì)模式是設(shè)計(jì)重用,架構(gòu)則介于兩者之間,部分代碼重用,部分設(shè)計(jì)重用,有時(shí)分析也可重用。
在軟件生產(chǎn)中有三種級(jí)別的重用:

  • 內(nèi)部重用,即在同一應(yīng)用中能公共使用的抽象塊;
  • 代碼重用,即將通用模塊組合成庫(kù)或工具集,以便在多個(gè)應(yīng)用和領(lǐng)域都能使用;
  • 應(yīng)用框架的重用,即為專用領(lǐng)域提供通用的或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級(jí)別的重用性。

框架與設(shè)計(jì)模式雖然相似,但卻有著根本的不同。

  • 設(shè)計(jì)模式是對(duì)在某種環(huán)境中反復(fù)出現(xiàn)的問(wèn)題以及解決該問(wèn)題的方案的描述,它比框架更抽象;
  • 框架可以用代碼表示,也能直接執(zhí)行或復(fù)用,而對(duì)模式而言只有實(shí)例才能用代碼表示;
  • 設(shè)計(jì)模式是比框架更小的元素,一個(gè)框架中往往含有一個(gè)或多個(gè)設(shè)計(jì)模式,框架總是針對(duì)某一特定應(yīng)用領(lǐng)域,但同一模式卻可適用于各種應(yīng)用。

可以說(shuō),框架是軟件,而設(shè)計(jì)模式是軟件的知識(shí)。
參考引入:某知乎回答

四、組件化初步的認(rèn)知?

對(duì)于這個(gè)概念,還沒(méi)有具體的認(rèn)知,先通過(guò)兩個(gè)圖來(lái)豎立下核心思想:

以前的開發(fā)
組件化思想的轉(zhuǎn)變

目前具體的來(lái)說(shuō),對(duì)于個(gè)人來(lái)說(shuō),就是下面兩個(gè)問(wèn)題啦:

  • 如何劃分模塊?
  • 中轉(zhuǎn)站怎么用?

此處還需要好好實(shí)踐和思考,具體的描述和理解等到下一篇再來(lái)記錄。。。

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

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

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,828評(píng)論 25 709
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,525評(píng)論 19 139
  • 具體參考Android設(shè)計(jì)模式源碼解析之責(zé)任鏈模式 就像事件流一樣,一個(gè)申請(qǐng)會(huì)向上級(jí)層層匯報(bào),獲得處理。程序猿狗屎...
    合肥黑閱讀 177評(píng)論 0 0
  • 兩年前跟團(tuán)來(lái)過(guò)馬德里,住在遠(yuǎn)離市區(qū)的酒店,又因?yàn)闀炣?,飯也沒(méi)有好好吃過(guò)一頓。對(duì)馬德里的印象只有旅游行程單上的幾個(gè)著...
    此木上海閱讀 883評(píng)論 0 0

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