什么是包装器类? 这样的类有什么用处呢?


当前回答

一个包装类不一定需要包装另一个类。它可能是一个API类,在一个dll文件中包装功能。

例如,创建一个dll包装类可能非常有用,它负责所有dll的初始化和清理,并创建类方法来包装从GetProcAddress()创建的函数指针。

干杯!

其他回答

有几种设计模式可以称为包装器类。

请参阅我对“代理、装饰器、适配器和桥接模式有何不同?”

包装器是用于在不同平台之间的两个不同应用程序之间进行通信的类

我目前在我的项目中使用了一个包装器类,我得到的主要好处(只是一个扩大主题解释的好处):

异常处理:我的主类(另一个类包装的类)具有在发生异常时抛出异常的方法,因此我创建了一个包装类来处理异常并立即记录它们。因此,在我的主作用域中,没有异常处理。我只是调用一个方法并做一些事情。

易于使用:我可以很容易地启动对象。通常起始阶段由很多步骤组成。

代码可读性:当另一个程序员打开我的代码时,代码看起来非常清晰,易于操作。

隐藏细节:如果你正在生成另一个程序员将要使用的类,那么你可以包装细节,如“错误处理,异常处理,日志消息等……”,这样程序员就不必处理混乱,只需要简单地使用方法。

包装器类是一个包装另一个类并提供客户端和被包装的原始类之间的抽象的类。

包装器类的出现是为了满足程序员的基本需求——即在只允许使用object的地方使用原始值。顾名思义,包装器类包装一个基本值,并将该值保存在Object中。因此,在所有不允许使用原语的地方——比如泛型、hashmap-key、数组列表等——程序员现在可以选择提供这些原语值作为相应的包装器类型。

此外,这些包装器类型有许多实用工具方法,用于从基本类型转换到相应的包装器类型和返回,以及从字符串转换到包装器类型和返回。

我在我的博客上写了一篇关于包装器类的详细文章,深入解释了包装器类型的概念——http://www.javabrahman.com/corejava/java-wrapper-classes-tutorial-with-examples/ (披露-这个博客是我所有的)