文章目录
  1. 1. 语境变量
    1. 1.1. 工作原理
    2. 1.2. 使用场景
  2. 2. 构造型生成器
    1. 2.1. 工作原理
    2. 2.2. 使用场景

鉴于篇幅问题,本文将会介绍通用主题的两个概念–语境变量和构造型生成器。

语境变量

当我们正在解析一个项列表时,虽然对象每一点的信息都可以单独获取,但是我们依然需要知道正在处理的信息属于哪个特定项。语境变量就是做这个用,它将当前项保存在变量中,当处理下一个时,会对它重新赋值。

工作原理

在解析过程中,使用一个命名类似于currentItem的变量,在处理文本时,随着从一个对象移到下一个对象,就要定期更新这个变量,这就是使用语境变量。

语境变量可能是一个语义模型对象,也可能是一个生成器对象。

使用场景

解析过程中需要保持语境的地方就是使用语境变量的场景。

然而,如果需要很多语境变量,那也是有问题的,因为从其本性来说,它们是可变状态,而这些状态是必须跟踪的,bug最喜欢这种可变状态。

构造型生成器

工作原理

构造星生成器的基本做法很简单。假设要逐步创建一个不可变对象,成为产品。找出产品构造函数的实参,为每个实参创建一个字段。对于要搜集产品的其他属性。也添加一些字段。最后,添加一个创建方法,返回一个由构造型生成器中所有数据组成的产品对象。

使用场景

有时,要创建一个对象,其中有多个不变字段,而且这些字段的值只能逐渐搜集,这时,构造型生成器就大显身手啦。

构造型生成器最简单的一个做法是,将信息存放在局部变量中,或者没什么目的的字段中。

还有一种方法,创建一个实际的模型对象,但是在搜集一项不可变属性的数据之后,就创建模型对象的一个副本,其中属性已经更改了,替换掉了旧值。

只有在处理不可变字段时才会用到它,否则就直接创建对象。

文章目录
  1. 1. 语境变量
    1. 1.1. 工作原理
    2. 1.2. 使用场景
  2. 2. 构造型生成器
    1. 2.1. 工作原理
    2. 2.2. 使用场景