Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

浅谈模板类的层次归属问题

  对于一个完整的前端架构而言,模板单独封装成模板类是不够的。即使已经封装好了模板类,使用起来依然非常繁琐。模板类实际上属于中间层,它向下是数据层,向上是视图层。为了便于操作,模板类应该尽量向这其中的一个层面靠拢,于是就产生了几种不同的做法。
  如果单独使用模板类,那在程序中就需要同时维护数据层与模板类的关系和模板类与视图层的关系。也就是说,我们需要为每一个小模块都写一份完整的数据获取到模板生成再到DOM操作的一系列代码。这是非常麻烦的,所以我们应该尽可能的把模板类靠拢的邻近的一个层上,避开这繁琐的操作。
  模板类向数据层靠拢:模板类的封装可能会绑定上一个数据源,因为每一个模板中所需的字段是固定的,这些字段可以直接通过数据源固定下来。使用时传入数据源所需的参数,它就自动加载数据,并生成所需的HTML文本或DOM元素。接着只要把这个生成的结果交给视图层上相应的程序来处理即可。当然,这个模板的生成结果与试图层的程序并不是一一对应的,同一个生成结果可能会被视图上的多处使用,模板与视图层的关系就需要手动维护了。
  模板类向视图层靠拢:模板类的封装可能会直接操作并维护DOM,而不是简单的生成HTML文本或DOM元素。这样我们就可以避开一些直接对视图层的操作,直接通过模板类上的操作来完成。但这种情况下数据源与模板就不是一一对应的了,一个数据源可以对应多个模板。在使用时我们就需要手动选择模板适合的数据传入,保持数据的字段与模板所需的字段对应。
  本站目前的程序采用了模板类向视图层靠拢的方式。因为架构的问题,数据层和传输层的关系非常紧密,很难再加入一个模板类。而视图层原本的操作相对简单,加个模板类非常容易。
  那么再考虑一个问题,可否让模板类同时与数据层和视图层结合呢?我们的目的是把模板类打发到其中一个层上,以简化掉模板层的操作。如果同时与两边的层结合,就意味着数据层需要和视图层合并。这在一些简单的架构上是可以做到的,比如页面上每一个模板所需的数据都可以简单地描述为一个SQL语句,那么数据层和视图层就可以直接合并。但是这么简单的架构甚至没有必要采用模板式编程都可以简单地实现。
  现代Web的架构远比这复杂的多。就像我的程序在数据层上无法加入模板类一样,可能有些架构对视图层的操作要求非常高,使得视图层无法加入模板。甚至有可能模板都无法归属到任何一个层上,只能自己独立实现。目前暂时没有遇到这样的场景,等到遇到了再研究吧。   
网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^