什么是模板引擎

模板引擎是什么?

 

模板引擎是以业务逻辑层和表现层分离为目的的,将规定格式的模板代码转换为业务数据的算法实现。

它可以是一个过程代码、一个类,甚至是一个类库。不同的模板引擎其功用也不尽相同,但其基本原理都差不多。

 

模板引擎的基本机理就是替换(转换),将指定的标签转换为需要的业务数据;将指定的伪语句按照某种流程来变换输出。

最低限度的模板引擎就类似于如下代码的实现:

 

1 const string message = "{Person}喜欢{Color}";

2 var msg = message.Replage("{Person}", person).Replage("{Color}", color);

实际上,我们在开发过程中已经在很多地方不自觉的在使用模板机制了。只不过对于如上的代码,

C#里面有更好的String.Format()可以使用,它自身也是实现了一套模板引擎。

 

按照具体的实现方式,我将模板引擎分成了三个基本类型:

 

置换型模板引擎。置换就是将规定好的文本标记替换为目标内容。这种模板引擎实现简单,除了标签替换之外,很少支持诸如子模板引用、流程控制等。正如上面所说,我们几乎天天都在使用这种模板引擎。置换型模板引擎通常用于业务逻辑不是很复杂的项目,比如生成短信、生成电子邮件,甚至有很多代码生成器也在用它。可以说,置换型模板引擎的思想是整个模板引擎界的基础。

 

解释型模板引擎。解释型模板引擎的原理还是标记置换。只不过有了解释器的存在,可以支持更加复杂的标记和语法。后面我们将会介绍一种使用反射机制实现的非常好用的模板引擎。大家都知道,在编程语言中,解释型语言和编译型语言相比行嫩会差出很多,这主要得看解释器如何优化了。

 

编译型模板引擎。编译型模板引擎是相对于解释型模板引擎来说的,实际上定名为编译型模板引擎也不太合适,但我也没想到别的好名字,哈!我们将要介绍的编译型模板引擎是Asp.Net网站开发专用的。它通过解析引擎和一系列的算法将我们定义的模板转换为.aspx文件,然后直接访问.aspx文件即可。

模板引擎的应用

在很多时候,模板引擎都是为了实现业务逻辑层和表现层的代码分离,以便于协同开发的。然而也有很多应用不仅如此,比如代码生成器,这里的代码分离实际上是为了能够获得更好的可扩展性

 

 

 

 

 

smarty

smarty是一个基于PHP开发的PHP模板引擎。它提供了逻辑与外在内容的分离,简单的讲,目的就是要使用PHP程序员同美工分离,使用的程序员改变程序的逻辑内容不会影响到美工的页面设计,美工重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值