4.1 视图模式
视图模式分3种:模版视图、转换视图、二步视图
这就带来了2种选择:1.使用转换视图还是模版视图。2.无论使用哪一种,是只使用一阶视图还是使用两步视图。转换视图和模版视图的基本模式是单阶段的,但也可以把两步视图应用于它们其中任何一个。
首先是模版视图和转换视图,模版视图它允许在网页上加标签,用以指明网页种的动态内容指像哪里,它们允许在网页中输入程序语言代码,这带来了极大的灵活性,但同时也导致代码的混乱以致难以维护。一种方法是:在使用服务器页面技术时,必须小心使程序的逻辑独立于网页结构(通常使用一个辅助对象)。
转换视图使用程序的一种转换风格,常见的例子如XSLT(可参考),如果领域数据时XML格式存在的,或者很容易转换成这种格式,那么转换视图时非常有效的,一个输入控制器挑选合适的XSLT样式表单,然后把它应用在由模型收集的XML上。
如果选择程序脚本作为视图,可以在转换视图、模版视图,或者两者的结合方式种编写代码,我注意到大部分脚本选择这两种模式种的一种作为主要框架。
其次,要决定是选择单阶视图还是两步视图,第一种方式通常在应用程序中为每一个屏幕都准备一个视图组件,视图提取领域数据并把它返回到HTML网页中。这里,“通常”是指类似的逻辑屏幕还是可以共享一个视图的。虽然如此,大多数情况下,还是可以把它想象成一个“一个屏幕对应一个视图”。
两阶视图把这一过程分解成两个阶段:由领域数据产生一个逻辑屏幕,然后把它发送到HTML页面中,其中,每一个屏幕都有一个第一阶段视图,而整个程序中只有一个第二阶段的视图。
两步视图的优点是它可以决定把什么样的HTML网页用在一个地方,这使得全局改变HTML网页变得很容易,因为但如果要改变每个屏幕的内容,只需对一个目标对象进行修改,当然,如果逻辑表现层是 一样的,它仅仅能带给你这些好处,因此当不同位置的屏幕使用相同的基本设计时,它可以很好地工作,当站点设计的过分精细时,通常不容易提取出很好的逻辑屏幕结构。
如果Web应用程序提供的服务是由多种前端用户来使用,那么运用两步视图将得心应手,例如,多家航空公司后台使用的是相同的基本订票系统。在逻辑屏幕的限制下,每个前端由于使用不同的第二阶段,可以得到不同外观视图。类似地,还可以使用两步视图来处理不同的输出设备。例如,可以用不同的第二阶段区分Web浏览器或掌上电脑。再有,在两个用户界面之间共享公共的逻辑屏幕也是有限制的,当这两个用户界面差异非常大时,比如在浏览器界面和有机屏幕之间,这种共享基本上不可能