【发布时间】:2011-03-22 12:38:49
【问题描述】:
我说的是第三方库的包装器。直到最近,我一直在尝试提供一个足够通用的包装器,以便在需要时轻松切换库。然而事实证明这几乎是不可能的,因为即使在处理基本概念方面,库也可能有很大差异。
所以我想到了为什么要使用包装器。 (过去,有经验的程序员鼓励我为 3rd-party 库编写包装器。)我得出以下结论;请告诉我他们是否错了,或者您有什么要补充的。
- 如果该库没有在应用程序中广泛使用(例如,仅由一两个类使用),则根本不要编写包装器,直接使用即可。 (特别是如果它是一个可移植的库。)
- 当您编写包装器时,不要认为您可以制作一种万能的包装器。根据 lib 的优势写一些合适的东西。
- ... 但是在某些情况下,您仍然可以充分概括包装器,这样切换库会更容易一些。 (例如:大多数图形库都使用图像和字体。)
- 当库提供的功能超出您的需要时,包装器很有用。您可以在包装器中隐藏不需要的功能。
- 对于 C 库(如果您使用 C++),您还可以编写一个包装器来帮助您进行自动内存管理。
您认为使用包装器的(不利)优势是什么,应该如何正确使用它们?
【问题讨论】: