# Unit
我们可以将用户所能操作的基本元素分为俩种类型:
Viewer:展示型元素,如文本、图片、视频等
Controller:控制型元素,如按钮、输入框等
从组件设计角度分析,上面俩种类型的元素的本质性区别为对数据的可控性, 即 Viewer 只能展示数据,而 Controller 可以控制数据。
# Viewer
# Controller
对于一个控制器来说,他由以下几个部分组成
数据的展示
数据可以根据类型、限制、模式产生各种不同形式展现,并且通过对展示元素的互动形成对值的控制。
操作的限制
通过操作进行限制,比如当一个选项是必填项时,在需要的时候抛出相应的错误,或者当一个数字类型有最大值的时候,操作可能超过限制的时候禁用对应的操作。
数据的更新
当数据被控制器内部的逻辑进行相应计算后,再经过校验逻辑后将正确的数据提供到外部层级通知其进行对应的更新。
数据的校验
就如上面所说的,对数据出口按照设定的逻辑进行校验,并且通过尽量统一的形式进行错误的渲染或者抛出。
# 如何创建自己的 Unit
Unit 分为俩种模式:
- 一种为在所有框架之上,只用于数据处理的,并不涉及具体框架之间差异
- 一种为在具体框架之中,负责在各个框架之中处理特殊的逻辑
我们通过将其拆分为上面的俩层架构后,便能很好的让逻辑尽可能的复用到各个框架中,使得插件的维护成本降低。