web表现模式
MVC
把用户界面的交互拆分到三个角色里
模型:表示领域信息的对象
视图:模型的显式
控制器:协调模型与视图
- 表现与模型关注点不同,表现侧重于可视化界面,而模型侧重于业务逻辑
- 同样的模型可以有不同的表现
- 不可见对象更容易测试
当系统有了一些不可见的逻辑时,就需要注意实现分离
页面控制器
为特定页面或动作处理请求的对象
一个控制器绑定在一个请求上
基本责任:
- 解码数据
- 处理数据
- 调用视图
servlet与jsp
前端控制器
处理所有请求的控制器,执行一些通用的行为,并且行为可以在运行时动态修改
每次请求都会产生新对象,可以避免线程安全问题
模板视图
通过在HTML标记一些数据,来让处理器渲染
模板引擎
- 辅助对象
- 条件显示
- 迭代显示
缺点
- 很容易被插入复杂的逻辑
- 难以测试
转换视图
转换视图把领域数据作为输入,HTML作为输出
与模板视图的区别是转换视图侧重于数据的输入,而模板视图更侧重于输出
两步视图
类似于编译,把业务数据转换为一种中间表示,再从中间表示渲染视图
两步视图的价值来源于分离了第一阶段与第二阶段,使改变更加容易
应用控制器
一个处理程序流的集中控制点