【发布时间】:2009-03-18 18:38:59
【问题描述】:
我有一个解析一些模板文件的代码,当它找到一个占位符时,它会用一个值替换它。比如:
<html>
<head>
<title>%title%</title>
</head>
<body bgcolor="%color%">
...etc.
在代码中,解析器找到这些,调用这个函数:
string getContent(const string& name)
{
if (name == "title")
return page->getTitle();
else if (name == "color")
return getBodyColor();
...etc.
}
然后用返回值替换原来的占位符。
在实际情况下,它不是一个虚拟网页,并且可能出现许多 (50+) 个不同的占位符。
我的代码是 C++,但我猜任何语言都存在这个问题。我猜这更多是关于算法和面向对象设计的。唯一重要的是它必须被编译,即使我想要我不能有任何动态/评估代码。
我虽然想实施责任链模式,但似乎不会对这种情况有太大改善。
更新:我还担心另一个线程中的this comment。我应该关心它吗?
【问题讨论】:
标签: c++ templates switch-statement chain-of-responsibility