你在这里。看看这个问题与其他知识怎样相连。
选择节点前往页面 · 展开后可留在地图中阅读
一个问题
视图变了,对象可以不变吗?
把上下文与投影分开,就能让多种视图指向同一组可操作对象。
- 同一任务对象引用共享状态→
- 投影 A / B选择呈现→
- 列表 / 演示卡片
同一个任务可以显示为紧凑列表,也可以显示为演示卡片。两份视图引用同一个任务时,改换布局就不必创建第二份业务对象。
这里可以沿着一个例子分两步理解“投影”:
- 先确定可使用的范围。 报告整理者能看见哪些任务?只能读取,还是可以改状态?这一步构造参与者的资源视图。
- 再决定怎样呈现。 把这些可使用的任务显示成列表、卡片或其他界面。这一步构造人看到的视觉视图。
两步都在从较丰富的上下文中选取需要的部分,但解决的问题不同。第一步改变资源范围,第二步改变呈现方式。只切换列表与卡片,通常不该扩大访问权限。
滚动位置、菜单是否展开等状态,可以只属于一份视图。任务完成状态可以属于共享业务对象。哪些状态共享,必须由应用明确决定。