当前位置:  开发笔记 > 编程语言 > 正文

用什么代替巨型switch语句?

如何解决《用什么代替巨型switch语句?》经验,为你挑选了1个好方法。

我有一个解析一些模板文件的代码,当它找到一个占位符时,它会用一个值替换它.就像是:



    %title%


...etc.

在代码中,解析器找到这些,调用此函数:

string getContent(const string& name)
{
    if (name == "title")
        return page->getTitle();
    else if (name == "color")
        return getBodyColor();
    ...etc.
}

然后用返回值替换原始占位符.

在实际情况中,它不是虚拟网页,并且可以发生许多(50+)个不同的占位符.

我的代码是C++,但我猜这个问题存在于任何语言中.我猜它更多的是关于算法和OO设计.唯一重要的是必须编译,即使我希望我没有任何动态/评估代码.

我虽然关于实施责任链模式,但它似乎并没有改善这种情况.

更新:我也关注另一个帖子中的这个评论.我应该关心它吗?



1> 小智..:

使用将标记名称映射到标记处理程序的字典.


@ejames我从来没有理解为什么长答案比短答案更好
推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有