我遇到的软件开发人员使用创建其他类或API,甚至有些代码的包装器的来看,这是由经验丰富的软件编程WRAPPER在编程中在哪里以及如何使用,它有什么帮助?
使用的一个术语所以任何想法是什么,他们的意思是它;
例如一个简单的问题;我们有两种类型的数组排序的技术,让我们为它创建
的包装上面一个是一个很简单的例子
我遇到的软件开发人员使用创建其他类或API,甚至有些代码的包装器的来看,这是由经验丰富的软件编程WRAPPER在编程中在哪里以及如何使用,它有什么帮助?
使用的一个术语所以任何想法是什么,他们的意思是它;
例如一个简单的问题;我们有两种类型的数组排序的技术,让我们为它创建
的包装上面一个是一个很简单的例子
术语'包装'被大量抛出。它通常用于描述一个包含另一个类的实例但不直接公开该实例的类。包装的主要目的是提供一种“不同的”方式来使用包装对象(也许包装提供了一个更简单的接口,或增加了一些功能)。
'wrapper'这个词在描述经典设计模式时也可以使用。
包装对象以提供简化的界面通常被描述为“外观”模式。包装是立面。
有时你可能有一个适合特定接口的类,但不能更改它的代码以使其符合该接口。您可以为实现该接口的类创建一个包装,但将大部分调用指向包装对象。这是'适配器'模式。包装是适配器。
您描述的实例中,有两个类可以使用不同算法进行数组排序,这听起来像是'Strategy'模式,您可以在其中提供对某个对象执行操作的方式,但是用于该操作的算法取决于该对象的结构可能不同。
例如,对于长度小于100的数组而言,其中一种排序算法可能非常适用,但性能可能会成为问题。另一种算法可能适用于更大的阵列。您可以为支持排序操作的两种算法创建一个'包装器',但根据数组长度决定使用哪种算法。
绝大多数包装存在隐藏某种复杂性。
一个封装是创建内部调用一些API不改变实际的API的一些代码。
一个例子是Facebook发布了他们的Facebook C#SDK。 SDK实际上是一个包装器,因为它只允许你调用它的底层平台而不给你具体的方法和类。另一方面,Facebook Developer Toolkit是其完整的API。
我需要编写一个C#程序,创建一个脚本文件(脚本语言是特定于硬件设备,被称为' CoraScript')。 CoraScript中有大约50个左右的命令,例如,一个连接到设备,一个将文件发送到该设备,告诉它在其闪存中执行应用程序等。而不是手动编写CoraScript,我想创建一个C#库,它将生成这样的脚本。这个C#库会被称为CoraScript脚本语言的“包装库”吗? – 2017-11-09 18:39:59
该脚本语言的命令行解释器是一个控制台应用程序。当该应用程序运行时,它需要CoraScript命令,执行它们并返回该命令的输出(例如,“Connect localhost”CoraScript命令将返回字符串“+ connect”,coralib3.dll版本1,8,11“'以指示该命令已成功执行)。 – 2017-11-09 18:44:40
有很多“包装”的例子,这个词有时可以互换使用。下面是几个例子浮现在脑海:
DLL包装
在我已经为了使用较旧的应用程序的.NET的高级功能创建围绕.NET的DLL COM包装过去的这理解COM但不了解.NET。
对象包装(爪哇)
在Java中,有在java.lang
包以提供八个原始类型对象的方法提供的类。 Java中的所有基本包装类都是不可变的。所以当需要Object
时,Wrapper
类用于表示原始值。
包装函数,函数的主要目的是调用第二功能
这个答案比4年前写的更有用吗?尝试并回答合法的问题,而不是那些在很久以前被问过的很多投票都能接受的答案。 – rayryeng 2014-12-10 18:43:52
大多数这些解释都是技术和杀死我的脑细胞:简单的解释:
什么包装?
当苹果的ipad出来时,我很困惑。 ipad做了什么,iPhone不做?他们不是基本上是一样的东西,除了有一个更大的屏幕?换句话说,ipad就像Iphone一样,只是它有一个更大的屏幕--Ipad“包装”了iphone。这意味着你有iPhone内的iPad本身的所有优点,并且有更大的屏幕等
严格地讲,它与“物”同样的事情的好处。
.............里面的所有东西都是一样的,但外观不同。一个不同的包装。
(下面这意味着什么简单解释)“包装可以比底层对象公开不同的功能”:
有时包装可能会限制你可以访问里面的东西。例如,ipad可能会限制您拨打电话的能力,即使埋入其中的Iphone具有此功能。
又如
思考的自动车,和手动车。在幕后,在一辆自动驾驶汽车中,有一些工程机构可以为您自动换档,但从根本上来说,在汽车表面下,汽车仍然是一辆手动车。换句话说,汽车的自动功能“包装”汽车的手动功能。如果您想在自动驾驶汽车中手动更换齿轮 - 您根本无法做到。在自动驾驶汽车中更换齿轮的能力“没有暴露”。但它被暴露在手动汽车中。当然,这个比喻有点紧张,但我希望你能看到我的所作所为。
现在结合这个解释与上面的我,我想你会有更多的运气了解发生了什么!任何问题,请免费评论,我会尽力为你解决:)
我在解释技术术语时喜欢这些有点解释。你知道有哪些网站专门做这件事吗?谢谢。 – vira 2018-02-22 19:24:33
是肯定有这样的网站,但我忘了它是什么 – BKSpurgeon 2018-02-22 23:06:06
哦,明白了......谢谢:) 一个非常详细的答案,解决了我的包装问题:) – 2010-07-22 08:23:56