Подтвердить что ты не робот

Где и как этот термин используется WRAPPER в программировании, что он помогает?

Я встречаюсь с разработчиками программного обеспечения, использующими термин создания Wrappers других классов или API или даже некоторых кодов, это термин, используемый опытными программистами

Итак, любая идея, что они подразумевают под этим;

например. простой вопрос; мы получили два типа методов сортировки массивов, создаем для него обертку

Вышеприведенный пример - очень простой пример

4b9b3361

Ответ 1

Термин "обертка" часто используется. Как правило, он используется для описания класса, который содержит экземпляр другого класса, но который напрямую не раскрывает этот экземпляр. Основная цель оболочки - предоставить "другой" способ использования обернутого объекта (возможно, оболочка обеспечивает более простой интерфейс или добавляет некоторые функции).

Слово "обертка" также может использоваться при описании классических шаблонов дизайна.

Обтекание объекта для обеспечения упрощенного интерфейса к нему часто описывается как шаблон "Фасад". Обертка - это фасад.

Иногда у вас может быть класс, который подходит для определенного интерфейса, но вы не можете изменить его код, чтобы он соответствовал этому интерфейсу. Вы можете создать оболочку для этого класса, который реализует интерфейс, но который направляет большинство вызовов обернутому объекту. Это шаблон "Адаптер". Оберткой является адаптер.

Пример, который вы описываете, где у вас есть два класса, которые могут выполнять сортировку массивов с использованием разных алгоритмов, например, как шаблон "Стратегия", где вы предоставляете способ выполнения операции над каким-либо объектом, но алгоритм, используемый для этой операции, может различаются в зависимости от структуры этого объекта.

Например, один из ваших алгоритмов сортировки может быть большим для массивов длиной менее 100, но тогда производительность может быть проблемой для него. Другой алгоритм может быть полезен для больших массивов. Вы можете создать "обертку" для двух алгоритмов, которые поддерживают операцию сортировки, но решают, какой алгоритм использовать на основе длины массива.

Подавляющее большинство оболочек существует, чтобы скрыть какую-то сложность.

Ответ 2

Объяснение по аналогии - Что такое упаковка?

Пример 1: Ipad "оборачивает" Iphone

Что делает Ipad, что не делает Iphone?

Разве это не одно и то же, за исключением того, что у одного экрана больше?

Ipad "оборачивает" iphone: это означает, что у вас есть все преимущества iphone внутри самого ipad, и есть преимущества большего экрана и т.д. Но по сути, внутри ipad лежит Iphone.

Чем тогда отличается? Единственное, что отличается, это внешний вид: у вас большой экран, и, возможно, вы не можете совершать телефонные звонки на Ipad.

An iphone is the only thing inside an Ipad. The Ipad literally wraps the Iphone. Except you can't make calls with an Ipad because the ability to make phone calls have not been "exposed". Apple want you to buy x2 products not just one :P

Это буквально то же самое с "объектами".

............. внутри есть все хорошее, что то же самое, но другой внешний вид. Другая обертка.

"Оболочки могут демонстрировать другие особенности, нежели лежащий в основе объект"...... хорошо, но что это значит?

Иногда оболочка может ограничивать доступ к вещам внутри. Например, ipad может ограничивать вашу способность совершать телефонные звонки, даже если Iphone, скрытый в нем, имеет такую возможность.

Пример 2: Автоматическая машина, действующая как обертка для ручной машины

Подумайте об автоматической машине и ручной машине. За кулисами, в автоматическом автомобиле, есть какой-то инженерный механизм, который автоматически переключает передачи для вас, но, по сути, под поверхностью, автомобиль все еще является автомобилем с ручным управлением. Другими словами, автоматические функции автомобиля "оборачивают" ручную функциональность автомобиля. Если вы хотели вручную переключать передачи в автоматической машине - вы просто не можете этого сделать. Возможность переключения передач "не выставлена" в автоматической машине. Но это выставлено в ручном автомобиле. Конечно, аналогия немного натянута, но я надеюсь, вы понимаете, к чему я клоню.

Но какова цель обертки?

Вы бы написали класс обёртывания, если хотите упростить вещи. Вы создали бы простой в использовании "обертка" и оставили бы все сложные биты внутри обертки, гарантируя, что эти сложные биты не будут "выставлены".

Например, у вас может быть оболочка .net, которая внизу делает COM-вызовы. Если у вас не было обертки, то вам придется делать эти COM-вызовы самостоятельно. К счастью с оберткой, вы просто делаете вызовы к коду .net-обертки, который, в свою очередь, делает эти COM-вызовы. И это, надеюсь, должно упростить вам вещи.

Ответ 3

Просто вы напишите простой в использовании код, чтобы скрыть сложности кода внизу. Это особенно полезно, когда вам нужно называть некоторый API низкого уровня с языка более высокого уровня, и вы хотите скрыть все "уродливые" коды.

Изменить: вы можете найти больше об этом в этих двух вики-статьях: library и function

Ответ 4

A Wrapper - это код, который создается для внутреннего вызова некоторого API без изменения фактического API.

Примером этого является выпуск в Facebook своего CK SDK для Facebook. SDK на самом деле является оберткой, поскольку он позволяет вызывать свою базовую платформу, не предоставляя вам конкретных методов и классов. С другой стороны, Facebook Developer Toolkit - это полный API.

Ответ 5

Существует много примеров "оберток", и этот термин иногда используется взаимозаменяемо. Ниже приведены несколько примеров, которые приходят на ум:

DLL Wrapper

В прошлом я создал оболочку COM вокруг .NET DLL, чтобы использовать расширенные функции .NET в старых приложениях, которые понимают COM, но не понимают .NET.

Обертка объектов (Java)

В Java существует класс, предоставляемый в пакете java.lang для предоставления объектных методов для восьми примитивных типов. Все примитивные классы оболочки в Java неизменяемы. Поэтому классы Wrapper используются для представления примитивных значений, когда требуется Object.

Ответ 6

Функция обертки, функция, главная цель которой - вызов второй функции

Ответ 7

Скажем, вы хотите добавить больше функциональности в свой код, но не можете изменить код. Это где обертка помогает. Вы можете использовать оболочку для получения вывода без изменения исходного кода.