我遇到过使用创建其他类或API甚至某些代码的包装的术语的软件开发人员,这是经验丰富的软件程序员使用的术语
所以任何想法,这是什么意思;
例如一个简单的问题;我们有两种类型的数组排序技术,让我们为其创建包装器
上面的例子很简单
Answers:
术语“包装器”到处都是。通常,它用于描述一个包含另一个类的实例的类,但不直接公开该实例。包装器的主要目的是提供一种使用包装对象的“不同”方式(也许包装器提供了一个更简单的接口,或添加了一些功能)。
描述经典设计模式时也可以使用“包装”一词。
包装对象以为其提供简化的界面通常被称为“外观”模式。包装是门面。
有时您可能拥有适合特定接口的类,但是您无法更改其代码以使其符合该接口。您可以为该类创建一个包装器,该包装器实现接口,但将大多数调用定向到包装的对象。这是“适配器”模式。包装器是适配器。
您描述的实例中,您有两个可以使用不同算法进行数组排序的类,听起来像“策略”模式,其中您提供了对某个对象执行操作的方法,但是用于该操作的算法可能会有所不同在那个物体的结构上。
例如,您的一种排序算法可能适合长度小于100的数组,但性能可能是一个问题。另一种算法可能适合较大的数组。您可以为这两种支持排序操作的算法创建一个“包装器”,但可以根据数组长度决定要使用哪种算法。
存在绝大多数包装程序以隐藏某种复杂性。
代码不用于解释。
ipad不执行iphone会执行的操作?
他们基本上不是同一件事,只是屏幕更大了吗?
Ipad会“包裹” iphone:这意味着您可以在ipad本身内拥有iphone的所有优点,并具有更大屏幕等优点。但是从根本上讲,ipad内是Iphone。
那有什么不同呢?唯一不同的是外观:您的屏幕更大,也许您无法在Ipad上拨打电话。
实际上,“对象”是一样的东西。
.............内部具有所有相同但相同的外观的好东西。不同的包装器。
“包装程序可能会公开与基础对象不同的功能” ......好吧,但这意味着什么?
有时包装器可能会限制您可以访问的内部内容。例如,即使埋在其中的Iphone具有该功能,ipad可能会限制您拨打电话的能力。
想想自动车和手动车。在幕后,在自动驾驶汽车中,有一些工程机制可以自动为您改变齿轮,但是从根本上说,在表面下,汽车仍然是手动车。换句话说,汽车的自动功能“包装”了汽车的手动功能。如果您想自己在自动驾驶汽车中手动换档-您根本做不到。自动驾驶汽车“不暴露”变速能力。但是它暴露在手动车中。理所当然的比喻有点紧张,但我希望你明白我的意思。
如果您想简化事情,可以编写包装类。您将创建一个易于使用的“包装器”,并将所有复杂的位留在包装器中,确保这些“复杂的位”不被“暴露”。
例如,您可能有一个.net包装器,该包装器在其下进行COM调用。如果没有包装器,那么您将不得不自己进行这些COM调用。幸运的是,使用包装程序,您只需对.net包装代码进行调用-这样就可以进行这些COM调用。这有望为您简化事情。
包装器是一些在不更改实际API的情况下内部调用某些API的代码。
Facebook的Facebook C#SDK发行就是一个例子。该SDK实际上是包装器,因为它仅允许您调用其基础平台,而没有提供特定的方法和类。另一方面,Facebook Developer Toolkit是其完整的API。
CoraScript)。CoraScript中大约有50条左右的命令,例如,一条连接到设备的命令,一条将文件发送到该设备的命令,告诉它在其闪存中执行应用程序的命令等。喜欢创建一个将生成此类脚本的C#库。将此C#库称为wrapper libraryCoraScript脚本语言的吗?
Connect localhostCoraScript命令将返回字符串+connect,"coralib3.dll version 1,8,11"以指示该命令已成功执行)。
“包装器”有许多示例,该术语有时可以互换使用。以下是一些想到的例子:
DLL包装器
过去,我围绕.NET DLL创建了COM包装器,以便在理解COM但不了解.NET的旧应用程序中使用.NET的高级功能。
对象包装器(Java)
在Java中,java.lang程序包中提供了一个类,以提供八种基本类型的对象方法。Java中的所有原始包装器类都是不可变的。因此Wrapper,Object在需要时,类用于表示原始值。
包装函数,主要目的是调用第二个函数的函数