我对此事有自己的看法,但似乎有很多图书馆和产品让第三方库渗透到API中。记录就是一个很好的例子。几乎所有事情都表明您需要配置该日志记录API,而不是使用您可以实现并提供给lib的提供程序接口。
旨在包装和隐藏所有要求太多的库?这值得吗?
答案 0 :(得分:1)
包装和隐藏库的所有内容不仅值得麻烦,而且通常会适得其反。
例如,我们有一个库,它实现了一个名为OAI-PMH的特定HTTP协议。该库在Apache HttpClient 4.0之上实现,Apache library's configuration interface具有丰富的配置参数。我们只是使用我们自己的工厂和构造函数公开{{3}},而不是构建我们自己的包装HttpClient配置参数。
如果我们试图包装所有的Apache参数,那就需要几个月的时间。如果我们代表我们图书馆的用户决定哪些参数很重要,并且只包含这些参数,我们就会限制他们对我们的图书馆做些什么。
答案 1 :(得分:0)
我认为很多都取决于你在做什么。鉴于您正在谈论的示例,我认为这将是一个令人难以置信的浪费时间,如果您完全隐藏第三方API,将给最终消费者一个不太健壮的包。
例如,如果您使用的是Log4Net并隐藏所有配置方面,则只能将灵活性限制为仅集成/公开的项目。现在,另一方面,有时候和地方,你想做什么。
所以我想只有真正需要这样做的时候,它的长短不一。至少那是我0.02美元。