文章目录
- 逻辑总结
- 为什么要将业务和视图分开
- 为了解耦
- 数据不同
- 数据层数据冗余
- 视图层非业务数据
- 业务数据再处理
- 保证各层数据的封闭性
逻辑总结
将前端分为视图层,中间层,业务层。
- 视图层负责页面渲染
- 业务层负责数据处理
- 中间层负责业务层和视图层的关系
如果为了降低耦合,可以这么做
为什么要将业务和视图分开
为了解耦
我们尽可能实现模块的独立,不互相影响。这样的话每个层只用负责自己层的事情,比如界面层不用了解业务层的数据是怎么来的。我只负责数据显示就好了
数据不同
数据层数据冗余
比如我一个学生的数据字段:
- id
- 学号
- 姓名
- 年龄
- 身份证
- 出生日期
- 入学日期
- 毕业日期
- 等等数据
但是我界面上面只显示姓名,年龄,学号。其它数据就是冗余。
视图层非业务数据
比如一个统计图,我有一下参数
- 标题
- 数据
- 统计图类型
- 宽度
- 颜色
只有统计图数据部分是从业务层过来的,其它数据是我视图层设置的
业务数据再处理
比如我一个学生,
- 成绩<60是不及格,显示红色
- 成绩>60是及格,显示黄色
- 成绩>80是良好,显示蓝色
- 成绩>90是优秀。显示紫色
但是我不想把这个写在数据库里面。我需要对业务数据进行再处理。
保证各层数据的封闭性
为了保证数据的封闭性和函数的泛用性。
我们需要做到
- 数据只能在各层内部修改
- 视图层不能直接改业务层的数据,只能调用业务层的函数来修改数据
- 函数只能在邻近层调用。
- 不能跨层调用函数。