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


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

參考鏈接:

https://blog.csdn.net/zhouziyu2011/article/details/68060055

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

 

架構:

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

 

 另外百度百科如下:

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

 

理解:

架構更趨於方案,是設計,並不是具體的技術。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模式)等等
設計模式有哪些?
工廠模式、適配器模式、策略模式等等
簡而言之: 框架是大智慧,用來對軟件設計進行分工;設計模式是小技巧,對具體問題提出解決方案,以提高代碼復用率,降低耦合度

 

3、模式:

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

 

4、模塊:

根據不同的標准,通常會說程序模塊或功能模塊,程序模塊指的是一段能夠實現某個目標的成員代碼段,功能模塊則用來說明一個功能所包含的系統行為。定義模塊的原則是:高內聚和低耦合。

 

 

5、組件:

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

 

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

 

 

6、插件:

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM