Wrapper Library & Library Wrapper

在计算机编程领域,软件库是一系列用于支持软件的库和函数的集合。软件库暴露出一些使用者可以方便调用的API来使相应的功能函数得到执行。Wrapper Library (或者也叫 library Wrapper)包含一个封装层,该封装层负责将现存的接口转换为更加灵活的接口。这么做的原因主要有:
1. 对原来的低级、复杂的设计进行优化
例如,有一坨祖传代码,但是祖传代码特别晦涩难用,于是写一个封装层把这些祖传的功能函数进行封装方便使用,封装层就叫Wrapper Library.
2. 方便跨语言间的互操作
这个使用的比较多,这个通常是某个库的某种语言版本已经有了,但是不支持另外一种语言。这个时候,我们可以写一个封装层为新的语言环境实现类似的函数API,而这些函数API内部实际是调用原语言版本的功能函数。
例如,libpcap和Winpcap里面的所有API都是使用C语言实现的,官方并没有提供对其他编程语言——例如Java,C#,python——的支持,为了让Java,C#,python也能使用libpcap里面的功能函数,幸好这些语言都可以直接调用C函数,于是我们无需python版本的libpcap,而只需要为python编写一个python类,这个类里面的函数原型与libpcap里面的函数原型保持一致,但是python类的函数核心是调用相应的C函数。

猜你喜欢

转载自blog.csdn.net/jmh1996/article/details/80221837