低代碼如何實現插件化架構?
大家好,本文介紹了實現插件化的低代碼架構的思路,以及在Meta3D(開源Web3D低代碼平臺)中具體實現的方案
需求
有同學想做個編輯器,希望可以隨意替換引擎、編輯器UI,能以插件的形式進行擴展,問該如何實現?
下面,我們首先給出抽象的解決方案:
抽象的解決方案

如上圖所示,編輯器由多個積木組成,其中有引擎積木、UI積木等。各個積木之間互相獨立,只依賴于彼此的抽象的積木協議。
只要讓編輯器組合不同的積木,就能實現替換積木,并且不影響其它的積木。
想要擴展功能,則增加對應的積木,并讓編輯器組合它即可。
這里只是給了個大概的思路,具體要使用“積木模式”,詳見:開源書《3D編程模式》->積木模式
接著,我們來看下在Meta3D中是如何實現插件化的:
具體的解決方案

如上圖所示,在Meta3D中,編輯器由多個包組成,其中有引擎包、UI包等。包又由多個擴展組成,而擴展又可以通過組合不同的貢獻來擴展自身。
包、擴展、貢獻都屬于積木,只是層級不同。因為同層的積木之間互相獨立,只依賴于彼此的抽象的積木協議,所以可以替換
因此,如果要替換引擎,則只需要增加對應的引擎包,讓編輯器組合它即可。具體來說,步驟如下:
- 開發出對應的貢獻和擴展,發布到Meta3D平臺
- 在Meta3D平臺上,將它們組合為引擎包
- 在Meta3D平臺上,讓編輯器改為組合這個新的引擎包,以替代原有的引擎包
- 在Meta3D平臺上,運行編輯器,即可看到已經替換了引擎
更多
更多的編輯器和引擎的編程模式,請詳見:開源書《3D編程模式》
Meta3D(開源Web3D低代碼平臺)目前發布了v1.0正式版,快速搭建Web3D編輯器,共建開放互助的Web3D生態。詳見:
Meta3D 1.0正式版發布-----開源的Web3D低代碼平臺
浙公網安備 33010602011771號