Interpreter(解释器模式)
给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。
比如JavaScript中,判断邮件地址、电话号码、证件号码是否正确的正则表达式,每一个表达式就是一个解释器。
又比如外交部的发言。就需要解释器来解释特定的内容。达成共识(扯淡了半天),充分表达了立场(撕逼了半天),我不了解相关情况(我不想回答你的问题)。
VC.m
存放一些全局配置信息
HCDContext *context = [[HCDContext alloc]initWithInput:@"12345"];
NSMutableArray *list = [[NSMutableArray alloc]init];
//不同的解释器
[list addObject:[[HCDTerminalExpression alloc]init]];
[list addObject:[[HCDNonterminalExpression alloc]init]];
[list addObject:[[HCDTerminalExpression alloc]init]];
[list addObject:[[HCDTerminalExpression alloc]init]];
//获得不同解释器的解释结果
for(HCDAbstractExpression *exp in list) {
[exp interpret:context];
}