OpenHarmony开发者论坛

标题: FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility有点类似于经典三层(MVC?),从命名上来看工作职责很清晰,并无主次之分。Stage模型是以UI(用户侧)为主了么,其余都是扩展? [打印本页]

作者: 北向实践与赋能    时间: 2024-1-11 17:34
标题: FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility有点类似于经典三层(MVC?),从命名上来看工作职责很清晰,并无主次之分。Stage模型是以UI(用户侧)为主了么,其余都是扩展?
[md]FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility有点类似于经典三层(MVC?),从命名上来看工作职责很清晰,并无主次之分。Stage模型是以UI(用户侧)为主了么,其余都是扩展?
[/md]
作者: 北向实践与赋能    时间: 2024-1-11 17:34
标题: FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility有点类似于经典三层(MVC?),从命名上来看工作职责很清晰,并无主次之分。Stage模型是以UI(用户侧)为主了么,其余都是扩展?
[md]**关键字**
设计思路、开发模型、模型设计、Ability、Extension

**解决方案**
FA模型适用于熟悉Web前端技术的开发者,开发轻量的、偏重于UI展示类的应用。在应用使用过程中,发现这种模型存在一定的适用范围:
通过固定文件入口和匿名对象的方式指定组件,虽然对Web开发者比较友好,但是开发者无法进行派生,不利于扩展能力。
Service和Data组件,由于没有界面,用户不可感知,容易被恶意应用滥用,引入关联启动等问题。
每个应用组件的实例运行在独立的虚拟机实例中,会带来较多的内存开销,并导致组件之间无法共享状态。
为了支持大型应用面向对象的范式开发,在遵循"若无必要,勿增实体"原则下,从下面三点设计新的Stage模型:
应用的能力与系统总体性能/功耗的平衡
原生支持组件级的迁移和协同
支持多设备形态和多窗口形态
FA模型的PageAbility、ServiceAbility、DataAbility不等同于MVC,三类Ability分别是承载UI、后台服务和后台数据组件,无主次之分,但是某种程度上MVC中View背后的PageAbility既要完成ui的工作又要做controller的活。
Stage模型是以UI为主的开发模型,UIAbility组件是一种包含UI界面的应用组件,主要用于和用户交互,其它对系统或三方提供能力都是通过扩展Extension实现。Extension都是基于某个特定场景,由系统统一调度管理,相比FA模型,达到后台进程环境从无序到有序的状态。

**参考资料**
https://docs.openharmony.cn/page ... del-description.md/
[/md]




欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/) Powered by Discuz! X3.5