FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility与经典三层(MVC?)的区别?

FA模型与Stage模型在设计哲学上的区分是什么?FA模型的应用组件分类PageAbility、ServiceAbility及DataAbility与经典三层(MVC?)的区别

阅读 281
1 个回答

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模型,达到后台进程环境从无序到有序的状态。

参考链接

应用模型

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进