Простое объяснение по аналогии: что такое упаковка?
Код не используется для объяснения.
Пример 1: Ipad «оборачивает» Iphone
Что делает ipad, чего не делает iphone?
Разве это не одно и то же, только у одного экран побольше?
Ipad «оборачивает» iphone: это означает, что вы получаете все преимущества iphone ВНУТРИ самого ipad, И имеете преимущества большего экрана и т. Д. Но по сути, внутри ipad находится Iphone.
Что же тогда другое? Единственное, что отличается - это внешний вид: у вас экран побольше, и, возможно, вы не можете звонить на Ipad.

То же самое и с «объектами».
............. внутри есть все то же самое, но другой внешний вид. Другая обертка.
«Обертки могут предоставлять отличные от базового объекта функции» ... хорошо, но что это значит?
Иногда обертка может ограничивать то, к чему вы можете получить доступ внутри. Например, ipad может ограничивать вашу способность совершать телефонные звонки, даже если Iphone, спрятанный внутри него, имеет такую возможность.
Пример 2: Автомобиль с автоматической коробкой передач действует как обертка для автомобиля с ручным управлением
Подумайте об автомобиле с автоматической коробкой передач и о машине с ручным управлением. За кулисами, в автомобиле с автоматической коробкой передач, есть некий инженерный механизм, который автоматически переключает передачи за вас, но, по сути, под поверхностью автомобиль все еще является автомобилем с ручным управлением. Другими словами, автоматические функции автомобиля «оборачивают» ручную функциональность автомобиля. Если вы захотели вручную переключить передачи в автомобиле с автоматом - у вас просто не получится. Возможность переключения передач в автомате «не выставлена». Но это выставлено на ручной машине. Конечно, эта аналогия немного натянута, но я надеюсь, вы понимаете, к чему я клоню.
Но какова цель обертки?
Вы бы написали класс-оболочку, если хотите упростить. Вы должны создать простую в использовании «оболочку» и оставить все сложные биты внутри оболочки, гарантируя, что эти сложные биты не будут «раскрыты».
Например, у вас может быть оболочка .net, которая внизу выполняет вызовы COM. Если бы у вас не было оболочки, вам пришлось бы выполнять эти вызовы COM самостоятельно. К счастью, с оболочкой вы просто вызовете код оболочки .net, который, в свою очередь, будет выполнять эти вызовы COM. Надеюсь, это упростит вам жизнь.