我有一个简单的regex转换方法,用于对作为std::string
传入的HTML进行一些小处理。方法看起来像:
std::string ParseQuotedPrintableHtml( std::string const& html );
我想把这个方法设计成某种小型库,可以在我的整个代码库中使用。由于它只是一个单独的函数,人们可能会倾向于创建一个Utility类(或命名空间)并将函数填充在其中。我觉得这是一个有点天真的设计。关于如何将这样的功能设计到一个集中且可访问的位置,有什么好的经验法则建议吗?
编辑
我还应该提到,这个函数调用了几个"helper"函数(我也创建了这些函数,它们只对这个方法有用并由它使用)。理想情况下,这些方法在类中是"私有"的,但如果我将其保留为全局函数,那么这些实现方法也可以在全局命名空间(或我放置它们的任何命名空间)中访问。
我想正因为如此,也许最好创建一个实用程序类?
class QuotedPrintableHtml
{
private:
void HelperMethod1() const;
void HelperMethod2() const;
std::string html_;
public:
QuotedPrintableHtml( std::string const& html ) : html_(html) {}
std::string Parse() const;
};
也许是这样的?
我不建议创建一个类:实用程序函数不共享某些状态,所以我只创建一个像Utilities
这样的命名空间来收集这些免费函数。您可以将不想共享的所有辅助函数放在cpp文件中的匿名命名空间中。