在计算机科学领域,包装库(英语:wrapper library,也称封装库)是一种函数库,可以将其它函数库已存在的接口翻译成另一种兼容接口。
简介包装库通常只是一小层代码(即“垫片”),它之所以存在,是为了:
改良设计存在缺陷或者过于复杂的接口
沟通无法协作的代码(例如数据格式不兼容)
跨语言、跨运行时系统交互1
示例以下提供了常见包装器库实现的一般说明。在此示例中,C ++接口充当C语言接口的“包装器”。1
C界面int pthread_mutex_init(pthread_mutex_t * mutex , pthread_mutexattr_t * attr);int pthread_mutex_destroy (pthread_mutex_t * mutex);int pthread_mutex_lock (pthread_mutex_t * mutex );int pthread_mutex_unlock (pthread_mutex_t * mutex );C ++包装器class Mutex{ pthread_mutex_t mutex;public: Mutex() { pthread_mutex_init(&mutex, 0); } ~Mutex() { pthread_mutex_destroy(&mutex); }private: friend class Lock; void lock() { pthread_mutex_lock(&mutex); } void unlock() { pthread_mutex_unlock(&mutex); }};class Lock{ Mutex& mutex;public: Lock(Mutex& mutex):mutex(mutex){mutex.lock();} ~Lock(){mutex.unlock();}};包装函数在计算机科学中,包装函数(英语:Wrapper function)是一种计算机程序中的函数,它存在的主要目的就是用来调用另一个函数。在面向对象编程中,它又被称为方法委任(method delegation)。它的存在有多种功能:可以被当成适配器模式来使用,可以当成错误检查程序,也可以被当成多重继承来使用。1
包装器模式在设计模式中,适配器模式(英语:adapter pattern)有时候也称包装样式或者包装(wrapper)。将一个类的接口转接成用户所期待的。一个适配使得因接口不兼容而不能在一起工作的类能在一起工作,做法是将类自己的接口包裹在一个已存在的类中。2
函数库在计算机科学中,函数库是用于开发软件的子程序集合。库和可执行文件的区别是,库不是独立程序,他们是向其他程序提供服务的代码。
库链接是指把一个或多个库包括到程序中,有两种链接形式:静态链接和动态链接,相应的,前者链接的库叫做静态库后者的叫做动态库。2
本词条内容贡献者为:
王沛 - 副教授、副研究员 - 中国科学院工程热物理研究所