Skip to content

[Editor] 编辑器架构 #259

Description

@zhurongjun

职责分层

  • 控件(Widget)层:实现具体绘制的 GUI 代码
  • 内容(Content)层:描述一个内容,不涉及具体控件和排版,大致描述界面的内容,以便实现基本控件框架的复用
  • 数据(Data)层:用于维护与界面有关的数据,隔离具体的数据操作代码,以便于实现多数据来源的共用

想设计相对独立的 GUI 功能,该怎么做

架构不对这方面实现做具体的限制,理论上可以直接申请一个 Window 然后直接开始写代码,但是本架构鼓励职责分离,且 Editor 和具体使用的 GUI 实现并不一定在同一 Module,因此在书写编辑器代码的时候可能无法直接绘制 GUI

这样的设计可能会稍显拗口,但是能最大化的防止 GUI 与业务的耦合,因此,对某个内容添加自定义的 GUI 内容的工作步骤如下

  1. 在当前模块中书写 ContentLayer 的接口,抽象内容表示
  2. 在另一个模块中书写 Widget 相关的接口,对刚刚书写的内容予以展示
  3. 如果有需要,最好实现 DataLayer 的接口方便对数据来源进行隔离

API 设计

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions