在前面简述了从服务层到数据层剩下了表现层,一个再好的中间层表现也必须有一个用户界面提供和用户交互,将用户行为输入转化为系统操作进入后台逻辑。在當下RAD(快速应用开发)工具的支持下我们可以比较快速的完成UI设计,RAD追求所见即所得的快速反馈快速应用。表现层也有一定其固定的邏辑(格式化数据绑定,转化等等称为UI逻辑)和界面展现。这里UI逻辑指的是所有用来处理数据显示在UI界面的逻辑和将UI用户输入行为轉化为中间层指令的逻辑,负责UI和中间层数据流和行为的转化很多时候UI是最容易变化的以及最不易测试的逻辑(我一直相信,1:一段好嘚代码一定要易于测试2:重构的前提也必须有足够的测试保证,才能让我们的重构更有节奏更自信)而很大部分UI逻辑却往往比较稳定嘚。这Matin Fowler提出的分离表现层模式表现层模式主要分为3种大类:MVC,MVPPM(微软在sl和wpf起名为MVVM),这3类模式下延伸了很多变异体mvc在web的 model2( 下的中HttpModule)根據url格式请求方式等转发到固定的控制器调用固定的Action,在Action中队模型状态进行修改并选择view,view并根据控制器传来的最新model生产htmlcss,js前段代码並输出到前段渲染。
中ViewData容器)2:控制器显示传入视图数据给view,相应用户的操作不是来自view而是出于服务端应用程序前段的拦截器,捕获url並转发到相应的控制器已经调用相应的action方法。