架構、框架、組件、插件淺談理解

日常總會看到說某某架構、某某框架,可是對於其意瞭解總有些迷糊,以致於有時候會出笑話,看了幾位老哥的博客,有了一些理解,在此記錄,加深一下。php

參考連接:python

http://www.javashuo.com/article/p-vnfpjuwz-gk.html程序員

https://blog.csdn.net/CillyB/article/details/79464339spring

 

架構:django

軟件架構,也成稱爲軟件體系結構,簡單地說就是一種設計方案,將用戶的不一樣需求抽象成組件,且可以描述組件之間的通訊和調用。軟件架構會分析工程中的問題,針對問題設計解決方案,針對解決方案分析應具備的功能,針對功能設計軟件系統的層次和模塊及層次模塊之間的邏輯交互關係,肯定各個功能如何由這些邏輯實現。開發人員能夠根據軟件架構分析出來的層次和架構進行軟件編寫。設計模式

 

 另外百度百科以下:微信

是一系列相關的抽象模式,用於指導大型軟件系統各個方面的設計。 軟件架構是一個系統的草圖。軟件架構描述的對象是直接構成系統的抽象組件。各個組件之間的鏈接則明確和相對細緻地描述組件之間的通信。在實現階段,這些抽象組件被細化爲實際的組件,好比具體某個類或者對象。架構

 

理解:mvc

架構更趨於方案,是設計,並非具體的技術。software architecture框架

 

另外關於MVC究竟是什麼的問題:

https://blog.csdn.net/whalefrat/article/details/78442175

 https://www.zhihu.com/question/31079945

https://blog.csdn.net/CillyB/article/details/79464339  

關於mvc有人說是設計模式,有人說是框架模式,有人說是架構模式。

我的以爲均可,只不過若是硬說是設計模塊感受有些牽強,框架模式和架構模式均可,關鍵字在模式二字

既然是模式,那麼是思想、是設計、是規範而不在於代碼層面。

 

框架:

軟件框架,是軟件開發過程當中提取軟件的共性部分造成的體系結構。框架不是現成可用的應用系統,而是一個半成品,是一個提供了諸多服務,供開發人員進行二次開發,實現具體功能的程序實體

 

理解:

更趨於技術,是半成品,須要進行二次開放。好比spring 框架- framework

 

關於框架與設計模式:

下面這一段以爲挺直觀,能夠看看。


框架和設計模式的區別
有不少程序員每每把框架模式和設計模式混淆,認爲MVC是一種 設計模式。實際上它們徹底是不一樣的概念。[7]
框架、設計模式這兩個概念總容易被混淆,其實它們之間仍是有區別的。框架一般是代碼重用,而設計模式是設計重用,架構則介於二者之間,部分代碼重用,部分設計重用,有時分析也可重用。在軟件生產中有三種級別的重用:內部重用,即在同一應用中能公共使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,以便在多個應用和領域都能使用;應用框架的重用,即爲專用領域提供通用的或現成的基礎結構,以得到最高級別的重用性。
框架與設計模式雖然類似,但卻有着根本的不一樣。設計模式是對在某種環境中反覆出現的問題以及解決該問題的方案的描述,它比框架更抽象;框架能夠用代碼表示,也能直接執行或複用,而對模式而言只有實例才能用代碼表示;設計模式是比框架更小的元素,一個框架中每每含有一個或多個設計模式,框架老是針對某一特定應用領域,但同一模式卻可適用於各類應用。 能夠說,框架是軟件,而設計模式是軟件的知識
框架模式有哪些?
MVC、 MTVMVPCBDORM等等;
框架有哪些?
C++語言的QT、MFC、gtk, Java語言的 SSHSSIphp語言的 smarty(MVC模式), python語言的django(MTV模式)等等
設計模式有哪些?
工廠模式、適配器模式、策略模式等等
簡而言之: 框架是大智慧,用來對軟件設計進行分工;設計模式是小技巧,對具體問題提出解決方案,以提升代碼複用率,下降耦合度

 

三、模式:

設計模式強調的是一個設計問題的解決方法,是一套被反覆使用、多數人知曉的、通過分類編目的、代碼設計經驗的總結。
框架與設計模式的關係:設計模式研究的是對單一問題的設計思路和解決方法,一個模式可應用於不一樣的框架和被不一樣的程序語言所實現;而框架則是一個應用的體系結構,是一種或多種設計模式和代碼的混合體。設計模式的思想能夠在框架設計中進行應用。
架構與設計模式的關係:設計模式研究的是對單一問題的設計思路和解決方法,範疇比較小;而架構是高層次的針對體系結構的一種設計思路,範疇比較大。一個架構中可能會出現多個設計模式的思想。

 

四、模塊:

根據不一樣的標準,一般會說程序模塊或功能模塊,程序模塊指的是一段可以實現某個目標的成員代碼段,功能模塊則用來講明一個功能所包含的系統行爲。定義模塊的原則是:高內聚和低耦合。

 

 

五、組件:

組件是封裝了一個或多個程序模塊的實體。組件強調的是封裝,利用接口進行交互。插件是組件的一個子類,就是將組件中具備某些特色的組件歸爲插件

 

理解:組件是封裝,是可重用的代碼。

 

 

六、插件:

插件屬於組件,插件是組件的一個子類,就是將組件中具備某些特色的組件歸爲插件。插件是一種電腦程序,經過和應用程序的互動,來爲應用程序增長一些特定的功能,僅靠插件是沒法正常運行的,須要依賴於應用程序才能發揮自身功能。插件和應用程序之間經過接口進行交互

 

理解:即插即用,動態。關於插件有的說是可單獨運行的,有的說必須依賴其餘應用。我的趨於後者,若是是可單獨運行的,我感受理解爲子系統更好,打個比方:好比微信的朋友圈若是能單獨運行,感受理解爲子系統或者子應用更好理解。

相關文章
相關標籤/搜索