5

我很想知道WrapperLibrary之间的区别。

从我在网上找到的内容来看,我真的看不出两者之间有任何重大区别。我经常遇到“Wrapper Library”或“Library Wrapper”,它看起来好像它们基本上是同一个。

但是,我的假设是,是经过微调的函数的集合,它们提供了一种方法来完成不属于语言核心功能的任务。

Wrapper是一种外观,它可以让您更轻松、更快速地在程序中设置某些功能,从而减少打字工作。

这两个描述只是让我觉得这是同一件事,但措辞不同..所以我来找你 Stackoverflow,

您对 Wrappers/Libraries 有何看法和专业观点?

旁注/背景:

这个问题源于我一个月前完成的 C++ 设计模式课:

在我的 C++ 软件设计模式类中,我们必须创建一个套接字库,它采用 WinSock 库并在其上创建一个薄(或厚,我们的选择)包装器。然后我们必须创建两个使用我们库的应用程序,这样我们就不必重复 WinSock 库的基本设置和繁琐的编码。我最终完成了该项目的 100%,但希望了解更多关于实际差异或相似之处的信息,因为我想在我的个人时间扩展这个项目。

4

2 回答 2

6

总的来说,我个人是这样认为的:

  • 通常是某些功能的实际具体实现
  • 包装器主要是围绕现有功能的一个抽象层。它只是为了给已经存在的东西提供一个更好、更干净的界面(或者至少让人觉得它更适合它所针对的语言或技术)。

现在很明显,有时两者之间的区别是非常清晰的,有时界限是模糊的,因此在后一种情况下,一些主观性可能是不可避免的。换句话说,你认为的实现你认为只是抽象的东西有时可能会模棱两可。

例如,包装器可以具有底层系统所没有的参数检查功能或更好的状态簿记功能。如果这主要是为了服务于抽象的正确性,那么它仍然倾向于包装器。如果添加了一些真正的新功能,它就会开始成为一个库,可以称为包装库。

另一方面,一个成熟的库可能根本不是一个包装器,因为它可以利用底层系统来提供一些功能,但不会在任何干净的接口中暴露该底层系统的任何相当大的部分(除了它添加的特定功能)。这将被称为库,但很可能它不会被称为包装器。

(我应该澄清一下,我所说的是我对此事的总体看法,而不是专门针对 C++。如果 C++ 世界对这些术语的定义不那么含糊,请纠正我。)

于 2013-06-14T18:05:41.563 回答
0

库是任何类型功能的通用实现。Wrapper 是一种特定的实现,旨在为现有库提供抽象。

于 2013-06-14T18:24:58.353 回答