我有一个解析一些模板文件的代码,当它找到一个占位符时,它会用一个值替换它.就像是:
%title% ...etc.
在代码中,解析器找到这些,调用此函数:
string getContent(const string& name) { if (name == "title") return page->getTitle(); else if (name == "color") return getBodyColor(); ...etc. }
然后用返回值替换原始占位符.
在实际情况中,它不是虚拟网页,并且可以发生许多(50+)个不同的占位符.
我的代码是C++,但我猜这个问题存在于任何语言中.我猜它更多的是关于算法和OO设计.唯一重要的是必须编译,即使我希望我没有任何动态/评估代码.
我虽然关于实施责任链模式,但它似乎并没有改善这种情况.
更新:我也关注另一个帖子中的这个评论.我应该关心它吗?
使用将标记名称映射到标记处理程序的字典.