我图书馆的几个部分都带有“便利”功能。例如,容器类可能具有解析字符串信息的函数。这些功能并不一定需要(或想要),因此我想将它们放在单独的文件中,以便根据用户的需要将它们包含在内或遗漏中。
这应该如何构建?我应该将头文件中的所有“便利”内容放在单独的文件夹中吗?或者它可能属于一个完全独立的库......?
大型图书馆(如Boost)如何处理这类事情?或者他们只是完全避免它?
答案 0 :(得分:1)
“应该”这个词往往会引起宗教反应,但我认为你最好不要考虑这个,就好像你是你图书馆的用户一样。
你想要它的结构如何?一个api中的所有内容都可以找到它,或者分散在类路径中?
是否有任何真正的理由甚至考虑将(例如)容器类的“parseString”方法放在除容器类之外的其他地方?
答案 1 :(得分:0)
图书馆提供商将其库组织成逻辑部分是很常见的,但随后提供了一种方法来一次性包含整个库(在C / C ++中,单个头文件;在Ruby中,单个包含,& c )。这样可以实现良好的凝聚力,并允许图书馆用户根据需要包含他们需要的部分。