我遇到软件开发人员使用创建其他类或API的Wrappers或甚至某些代码的术语,这是经验丰富的软件程序员使用的术语
所以任何想法是什么意思呢;
例如一个简单的问题; 我们有两种类型的数组排序技术,让我们为它创建一个包装器
以上是一个非常简单的例子
Ale*_*rey 112
"包装"这个词被大量抛出.通常,它用于描述包含另一个类的实例但不直接公开该实例的类.包装器的主要目的是提供一种"不同"的方式来使用包装对象(也许包装器提供了一个更简单的接口,或者添加了一些功能).
在描述经典设计模式时,也可以使用"包装器"一词.
包装对象以向其提供简化的界面通常被描述为"Facade"模式.包装纸是外立面.
有时您可能有一个适合特定接口的类,但您无法更改它的代码以使其符合该接口.您可以为该类创建一个实现接口的包装器,但它将大多数调用指向包装对象.这是'适配器'模式.包装器是适配器.
您描述的实例,其中有两个可以使用不同算法进行数组排序的类听起来像'策略'模式,您可以在其中提供对某个对象执行操作的方法,但用于该操作的算法可能会有所不同,具体取决于在该对象的结构上.
例如,对于长度小于100的数组,您的排序算法之一可能很好,但是性能可能是它的问题.另一种算法可能适用于较大的阵列.您可以为支持排序操作的两种算法创建"包装器",但根据数组长度决定使用哪种算法.
绝大多数包装器都存在以隐藏某种复杂性.
BKS*_*eon 58
ipad做了什么,iPhone不做?除了一个有更大的屏幕外,它们基本上不是一回事吗?Ipad"包装"了iphone:这意味着你拥有iphone本身的所有优点,并拥有更大屏幕的优势等.但从根本上说,在ipad中,有一款Iphone.唯一不同的是外观:你有一个更大的屏幕.
它与"对象"完全相同.
.......内部有所有好东西,但外观不同.一个不同的包装器.
"Wrappers可能会暴露出与底层对象不同的特性"(简单说明下面的含义):
有时,包装器可能会限制您可以访问的内容.例如,即使埋在其中的Iphone具有该功能,ipad也可能限制您拨打电话的能力.
想想自动驾驶汽车和手动汽车.在幕后,在自动驾驶汽车中,有一些工程机制会自动为您改变档位,但从根本上说,在汽车表面下,汽车仍然是一辆手动汽车.换句话说,汽车的自动功能"包裹"了汽车的手动功能.如果你想在自动汽车中自己手动更换齿轮 - 你根本做不到.在自动车中,"不暴露"变换齿轮的能力.但它暴露在手动车中.虽然这个比喻有点紧张,但我希望你能看到我所得到的东西.
Wrapper 是一些代码,它被创建用于在不更改实际 API 的情况下在内部调用某些 API。
这方面的一个例子是 Facebook 发布的Facebook C# SDK。SDK 实际上是一个包装器,因为它只允许您调用其底层平台,而不提供特定的方法和类。另一方面,Facebook Developer Toolkit是其完整的 API。
| 归档时间: |
|
| 查看次数: |
56529 次 |
| 最近记录: |