• 低代码如何实现插件化架构?


    大家好,本文介绍了实现插件化的低代码架构的思路,以及在Meta3D(开源Web3D低代码平台)中具体实现的方案

    需求

    有同学想做个编辑器,希望可以随意替换引擎、编辑器UI,能以插件的形式进行扩展,问该如何实现?

    下面,我们首先给出抽象的解决方案:

    抽象的解决方案

    image

    如上图所示,编辑器由多个积木组成,其中有引擎积木、UI积木等。各个积木之间互相独立,只依赖于彼此的抽象的积木协议。

    只要让编辑器组合不同的积木,就能实现替换积木,并且不影响其它的积木。

    想要扩展功能,则增加对应的积木,并让编辑器组合它即可。

    这里只是给了个大概的思路,具体要使用“积木模式”,详见:开源书《3D编程模式》->积木模式

    接着,我们来看下在Meta3D中是如何实现插件化的:

    具体的解决方案

    image

    如上图所示,在Meta3D中,编辑器由多个包组成,其中有引擎包、UI包等。包又由多个扩展组成,而扩展又可以通过组合不同的贡献来扩展自身。

    包、扩展、贡献都属于积木,只是层级不同。因为同层的积木之间互相独立,只依赖于彼此的抽象的积木协议,所以可以替换

    因此,如果要替换引擎,则只需要增加对应的引擎包,让编辑器组合它即可。具体来说,步骤如下:

    • 开发出对应的贡献和扩展,发布到Meta3D平台
    • 在Meta3D平台上,将它们组合为引擎包
    • 在Meta3D平台上,让编辑器改为组合这个新的引擎包,以替代原有的引擎包
    • 在Meta3D平台上,运行编辑器,即可看到已经替换了引擎

    更多

    更多的编辑器和引擎的编程模式,请详见:开源书《3D编程模式》

    Meta3D(开源Web3D低代码平台)目前发布了v1.0正式版,快速搭建Web3D编辑器,共建开放互助的Web3D生态。详见:
    Meta3D 1.0正式版发布-----开源的Web3D低代码平台

  • 相关阅读:
    leveldb安装
    二战MySQL数据库【升华篇】
    SQL User-Agent注入详解
    Head First设计模式学习笔记
    【android 蓝牙开发——蓝牙耳机】
    JavaScript+canvas实现粒子动画效果
    c++类构造函数、拷贝函数 、 赋值函数、析构函数
    Python unittest 之三: 测试套件
    分布式面试题
    【无标题】Test
  • 原文地址:https://www.cnblogs.com/chaogex/p/17938919