包装器和库之间的区别

Dyl*_*n N 5 c++ design-patterns

我很好奇知道包装器图书馆之间的区别。

从我在网上可以找到的东西来看,我真的看不出两者之间的主要区别。我经常遇到“包装器库”或“库包装器”,看起来它们基本上是一样的。

但是,我的假设是,是微调函数的集合,这些函数提供了一种完成任务的手段,而该任务并不属于该语言的核心功能。

包装是一个假象,使得它更容易和更快建立特定功能的程序中,让你有少打字做。

这两个描述只是使我看起来好像是同一件事,对我来说却是不同的措辞。.所以我来找你Stackoverflow,

您对包装纸/图书馆有何意见和专业观点?

旁注/背景:

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

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

The*_*kis 6

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

  • 一个通常是一个实际的具体实现的一些功能。
  • 一个包装大多是只是一个抽象层周围现有的功能。它仅旨在为已存在的内容提供更好,更简洁的界面(或至少为它所针对的语言或技术提供一种更原生的界面)。

现在很明显,有时两者之间的区别是非常清晰的,而线条却是模糊的,因此在后一种情况下,某些主观性是不可避免的。换句话说,您所考虑的实现以及您仅考虑抽象的情况有时可能会模棱两可。

例如,包装器可以具有参数检查功能或更好的状态簿记功能,而底层系统则没有。如果这主要是为了确保抽象的正确性,那么它仍然靠包装器的侧面。如果添加了一些全新的功能,它将开始成为一个库,并且可以称为包装器库。

另一方面,从它可以利用底层系统提供某些功能的意义上说,完全成熟的库可能根本不是包装器,但是却没有在任何干净的接口中公开该底层系统的相当大一部分(除了它添加的特定功能)。这将被称为库,但很可能不会被称为包装器。

(我需要澄清的是,我所说的只是我对问题的一般看法,而不是针对C ++。如果C ++世界对这些术语的定义不太含糊,请纠正我。)