oop - 术语 WRAPPER 在编程中的使用位置和方式,它有什么帮助?

标签 oop terminology

我遇到过软件开发人员使用创建其他类或 API 甚至某些代码的包装器这一术语,这是有经验的软件程序员使用的术语

所以知道他们的意思是什么;

例如一个简单的问题;我们有两种类型的数组排序技术,让我们为它创建一个包装器

上面是一个很简单的例子

最佳答案

“包装器”一词被广泛使用。通常它用于描述一个类,该类包含另一个类的实例,但不直接公开该实例。包装器的主要目的是提供一种“不同”的方式来使用包装对象(也许包装器提供了一个更简单的接口(interface),或者添加了一些功能)。

在描述经典设计模式时也可以使用“包装器”一词。

包装对象以提供简化的接口(interface)通常被描述为“外观”模式。包装器是外观。

有时您可能有一个适合特定接口(interface)的类,但您无法更改它的代码以使其符合该接口(interface)。您可以为实现该接口(interface)的类创建一个包装器,但它将大部分调用定向到包装的对象。这是“适配器”模式。包装器是适配器。

您描述的实例中,您有两个类可以使用不同的算法进行数组排序,这听起来像“策略”模式,您提供了一种对某些对象执行操作的方法,但用于该操作的算法可能根据该对象的结构而有所不同。

例如,您的一种排序算法可能非常适合长度小于 100 的数组,但性能可能会成为问题。另一种算法可能适用于更大的阵列。您可以为支持排序操作的两种算法创建一个“包装器”,但根据数组长度决定使用哪种算法。

绝大多数包装器的存在是为了隐藏某种复杂性。

关于oop - 术语 WRAPPER 在编程中的使用位置和方式,它有什么帮助?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3293752/

相关文章:

C++类设计问题

c# - "protected"和 "virtual/override"之间的区别

javascript - 如何标记 getElementById、getElementsByTagName 或 querySelector 等函数?

java - 混淆了 JavaBeans、POJO、bean?

c++ - 如何在QT Creator上将QWidget声明为继承类的对象?

c++ - 如何在 C++ 中通过引用调用一个类的变量

php - 在 PHP 中创建对象数组

java - 网络中的端口是什么?

python - Python 中的 x = [m]*n 语法是什么?

javascript - 如何在 JavaScript 中的数组开头添加新的数组元素?