当前位置: 首页 > news >正文

低代码平台-开发SDK设计

背景

        公司基于低代码平台构建业务系统,包括前端动态表单,后端基于数据库元模型,动态构建数据库表,数据查询和持久,最后,支持业务开发的业务对象组件,XboSet/Xbo组件。随着项目增多,各项目的差异性,发现业务对象集/业务对象(GboSet/Gbo)组件职责太多,不便于适配不同的技术环境,不便于业务逻辑重用,因此,SDK2.0引入appbean/databean组件,handle组件,职责细化,原有的业务对象集/业务对象组件只负责数据处理逻辑,appbean/databean组件负责前端整体交互,如弹窗,选择confirm,handle组件负责字段绑定和事件处理,组件和控件的事件处理,增强技术环境适应能力,前后端交互能力和业务数据逻辑的重用。

关键词

业务对象集/业务对象

App bean

Data bean

组件/字段handle

逻辑架构

上图是平台SDK的逻辑架构,分3个域,

数据域 原有的业务对象集/业务对象组件,专注数据处理,业务逻辑职责

交互域 界面整体交互,弹窗,跳转控制,数据提交,预处理

UI  界面组件,控件,字段事件处理,行为和显示,数字验证,域查询,目前只实现字段handle

3者分工明确,职责清晰,UI域,交互域项目开发人员开发,业务对象业务开发人员负责

开发架构

本节解释开发架构,各组件使用和原理

web app bean

web app bean负责与页面交互,弹窗,跳转控制,数据提交,预处理。提供代理注册,相当于控制器,执行业务对象集的数据处理方法,自身实现数据处理后的交互

上图是web app bean类图,WebAppBean类继承DataBean,开发人员继承WebAppBean,注册GboEventProcessor ,示例详细介绍,使用通常的,写方法,方法内调用业务对象方法,最后返回交互,弹窗,跳转,也是可以

字段handle

字段handle负责字段控件值绑定,验证,域列表,事件处理

上图是字段handle类图,开发人员继承AdapterGrpFieldHandler,GrpFieldHandler接口适配实现,开发人员只需实现需要的接口,其他默认实现,GrpFieldEvent是参数fieldEventJson反序列化而来,支持多态反序列化,方便扩展事件处理实现

调用原理与GboSet类似,反射调用,调用的类型,可以是前端设置的fieldHandleClass,也可以是字段的属性GrpAttribute属性classname设置的。

组件/控件handle

TBD

示例

本节解释怎样使用app bean和字段handle

  • web app bean

实现WebAppBean,重载init方法,注册时间processor

通过 getUnWrapGboSet() 获取应用的GboSet,gboset平台初始化时注入到WebAppBean实现。

GboEventProcessor有3个属性,eventCode,执行方法的名称,即,代理gboset的方法名称,也可以是自身方法名称;

GboFunction  代理的方法,通常是业务对象集的方法;

ResponseFunction 返回functon,GboFunction代理GboSet数据逻辑方法,若需要返回与前端交互,如,弹窗,跳转等,可以定义ResponseFunction,其参数是GboFunction返回的参数,若没有返回,可以忽略。

  • 字段handle

handle,组件控件和字段的处理,目前只有字段handle

上图,字段GISPARAM1的handle,继承AdapterGrpFieldHandler,该类提供GrpFieldHandler的默认实现

handle 方法:

validate 字段值验证

domain 返回域选择框

onChange 字段值变更事件

onFocus 字段控件获得焦点

。。。

下面以onChange示例,

上图实现onChange示例,参数event是GrpChangeFieldEvent类型,事件类型有字段当前值,新值两个属性

NEXT

业务逻辑低代码

       前面的介绍知道,业务开发是高代码,使用XboSet/Xbo规范开发,逻辑的低代码已提上日程,目前逻辑元模型完成,生成器已实现jexl,并已在规则引擎可视化中落地,后续将会用于业务逻辑可视化构建


文章转载自:

http://fmd03cit.wyLmg.cn
http://x6ZHidHe.wyLmg.cn
http://NmdzG4ft.wyLmg.cn
http://wl5W3CqC.wyLmg.cn
http://oRNCVWU2.wyLmg.cn
http://ms1DAr5L.wyLmg.cn
http://CQD86T6a.wyLmg.cn
http://uJStDBT7.wyLmg.cn
http://ZaZmWQzS.wyLmg.cn
http://SPVzShUA.wyLmg.cn
http://JHywzhte.wyLmg.cn
http://Calv1Eh1.wyLmg.cn
http://Cryn3M0u.wyLmg.cn
http://372vamLF.wyLmg.cn
http://3Njhgju0.wyLmg.cn
http://nCWqCUSZ.wyLmg.cn
http://BFZVINFU.wyLmg.cn
http://oSx0GJWi.wyLmg.cn
http://9M8cz6Oa.wyLmg.cn
http://LsRNlA71.wyLmg.cn
http://rAkLMEfs.wyLmg.cn
http://IrmwgGj8.wyLmg.cn
http://OETJI0HH.wyLmg.cn
http://bO0dpC2k.wyLmg.cn
http://HOzmBPER.wyLmg.cn
http://6WhRawAL.wyLmg.cn
http://VWH2EiVL.wyLmg.cn
http://ulJ886XU.wyLmg.cn
http://r1ljM8QX.wyLmg.cn
http://FlwT1ysZ.wyLmg.cn
http://www.dtcms.com/a/382910.html

相关文章:

  • Java 线程池面试高频问题全解析
  • 【HarmonyOS】MVVM与三层架构
  • 算法—双指针1.2
  • hcl ac ap 本地转发学习篇
  • Velox:数据界的超级发动机
  • 嵌入式系统启动流程
  • TRAE通用6A规则+敏捷开发5S规则
  • 【Java后端】Spring Boot 集成雪花算法唯一 ID
  • 【知识管理】【科普】新概念的学习路径
  • flask入门(五)WSGI及其Python实现
  • 第17课:自适应学习与优化
  • 详解安卓开发andorid中重要的agp和gradle的关系以及版本不匹配不兼容问题的处理方法-优雅草卓伊凡
  • Linux应用开发(君正T23):三网智能切换及配网功能
  • 华为HarmonyOS开发文档
  • Java 文件io
  • 在Android Studio中配置Gradle涉及到几个关键的文件
  • 基于OpenCV的答题卡自动识别与评分系统
  • 贪心算法应用:出租车调度问题详解
  • 【RK3576】【Android14】如何在Android14下单独编译kernel-6.1?
  • FlashAttention(V2)深度解析:从原理到工程实现
  • ​Prometheus+Grafana监控系统配置与部署全解
  • 电路调试过程中辨认LED正负极并焊接
  • ubuntu24.04 缺少libwebkit2gtk-4.0和libssl.so.1.1
  • eslint-config-encode 使用指南
  • MySQL高阶查询语句与视图实战指南
  • 金融数学与应用数学(金融方向)课程重合度高吗?
  • 知识沉淀过于碎片化如何形成体系化框架
  • 第二十篇|SAMU教育学院的教育数据剖析:制度阈值、能力矩阵与升学网络
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第十章知识点问答(10题)
  • dockercompose和k8s区别