跳到主要内容
知识地图视图变了,对象可以不变吗?ArcBlock 体系

你在这里。看看这个问题与其他知识怎样相连。

选择节点前往页面 · 展开后可留在地图中阅读

知识地图沿着连接,读懂一个问题
← AFS 与界面

一个问题

视图变了,对象可以不变吗?

把上下文与投影分开,就能让多种视图指向同一组可操作对象。

  1. 同一任务对象引用共享状态
  2. 投影 A / B选择呈现
  3. 列表 / 演示卡片
关系示意 · 箭头说明职责与连接,不代表完整协议时序。

同一个任务可以显示为紧凑列表,也可以显示为演示卡片。两份视图引用同一个任务时,改换布局就不必创建第二份业务对象。

这里可以沿着一个例子分两步理解“投影”:

  1. 先确定可使用的范围。 报告整理者能看见哪些任务?只能读取,还是可以改状态?这一步构造参与者的资源视图。
  2. 再决定怎样呈现。 把这些可使用的任务显示成列表、卡片或其他界面。这一步构造人看到的视觉视图。

两步都在从较丰富的上下文中选取需要的部分,但解决的问题不同。第一步改变资源范围,第二步改变呈现方式。只切换列表与卡片,通常不该扩大访问权限。

滚动位置、菜单是否展开等状态,可以只属于一份视图。任务完成状态可以属于共享业务对象。哪些状态共享,必须由应用明确决定。