組件化和插件化的區別

提起組件化和插件化的區別,有一個很形象的圖:

上面的圖看上去似乎比較清晰,其實容易導致一些誤解,有下面幾個小問題,圖中說的就不太清楚:

  • 組件化是一個整體嗎?去了頭和胳膊還能存在嗎?左圖中,似乎組件化是一個有機的整體,需要所有器官都健在纔可以存在。而實際上組件化的目標之一就是降低整體(app)與器官(組件)的依賴關係,缺少任何一個器官app都是可以存在並正常運行的。
  • 頭和胳膊可以單獨存在嗎?左圖也沒有說明白,其實答案應該是肯定的。每個器官(組件)可以在補足一些基本功能之後都是可以獨立存活的。這個是組件化的第二個目標:組件可以單獨運行。
  • 組件化和插件化可以都用右圖來表示嗎?如果上面兩個問題的答案都是YES的話,這個問題的答案自然也是YES。每個組件都可以看成一個單獨的整體,可以按需的和其他組件(包括主項目)整合在一起,從而完成的形成一個app
  • 右圖中的小機器人可以動態的添加和修改嗎?如果組件化和插件化都用右圖來表示,那麼這個問題的答案就不一樣了。對於組件化來講,這個問題的答案是部分可以,也就是在編譯期可以動態的添加和修改,但是在運行時就沒法這麼做了。而對於插件化,這個問題的答案很乾脆,那就是完全可以,不論實在編譯期還是運行時!

本文主要集中講的是組件化的實現思路,對於插件化的技術細節不做討論,

我們只是從上面的問答中總結出一個結論:
       組件化和插件化的最大區別(應該也是唯一區別)就是組件化在運行時不具備動態添加和修改組件的功能,但是插件化是可以的。


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章